diff options
author | Nicholas Clark <nick@ccl4.org> | 2006-01-30 13:42:56 +0000 |
---|---|---|
committer | Nicholas Clark <nick@ccl4.org> | 2006-01-30 13:42:56 +0000 |
commit | f9d52e31c1813ca7a3cf9d975dc34f04194d1328 (patch) | |
tree | b3e1a2c046ea4fde5afcf0040576d488cf910737 /t/op/gv.t | |
parent | 25909821eb3e0c6b8049a206da47b68b90d7e46a (diff) | |
download | perl-f9d52e31c1813ca7a3cf9d975dc34f04194d1328.tar.gz |
Code assumes that *FOO{SCALAR} will always return a scalar reference,
so make it so, creating $FOO if necessary.
(Effectively this is a policy decision that PERL_DONT_CREATE_GVSV is
visible to XS code, but isn't visible to Perl code)
p4raw-id: //depot/perl@27002
Diffstat (limited to 't/op/gv.t')
-rwxr-xr-x | t/op/gv.t | 15 |
1 files changed, 14 insertions, 1 deletions
@@ -12,7 +12,7 @@ BEGIN { use warnings; require './test.pl'; -plan( tests => 132 ); +plan( tests => 134 ); # type coersion on assignment $foo = 'foo'; @@ -393,6 +393,19 @@ foreach my $value ([1,2,3], {1=>2}, *STDOUT{IO}, \&ok, *STDOUT{FORMAT}) { like ($@, qr/^Cannot convert a reference to $type to typeglob/, "Cannot upgrade ref-to-$type to typeglob"); } + +{ + no warnings qw(once uninitialized); + my $g = \*clatter; + my $r = eval {no strict; ${*{$g}{SCALAR}}}; + is ($@, '', "PERL_DONT_CREATE_GVSV shouldn't affect thingy syntax"); + + $g = \*vowm; + $r = eval {use strict; ${*{$g}{SCALAR}}}; + is ($@, '', + "PERL_DONT_CREATE_GVSV shouldn't affect thingy syntax under strict"); +} + __END__ Perl Rules |