perl
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
t/op/lvref.t view on Meta::CPAN
like $@, qr/^Assigned value is not a SCALAR reference at/,
'assigning non-scalar ref to package scalar ref';
eval { my @x; \@x = {} };
like $@, qr/^Assigned value is not an ARRAY reference at/,
'assigning non-array ref to array ref';
eval { \@::x = {} };
like $@, qr/^Assigned value is not an ARRAY reference at/,
'assigning non-array ref to package array ref';
eval { my %x; \%x = [] };
like $@, qr/^Assigned value is not a HASH reference at/,
'assigning non-hash ref to hash ref';
eval { \%::x = [] };
like $@, qr/^Assigned value is not a HASH reference at/,
'assigning non-hash ref to package hash ref';
eval { use feature 'lexical_subs';
no warnings 'experimental::lexical_subs';
my sub x; \&x = [] };
like $@, qr/^Assigned value is not a CODE reference at/,
'assigning non-code ref to lexical code ref';
eval { \&::x = [] };
like $@, qr/^Assigned value is not a CODE reference at/,
'assigning non-code ref to package code ref';
eval { my $x; (\$x) = 3 };
like $@, qr/^Assigned value is not a reference at/,
'list-assigning non-ref';
eval { my $x; (\$x) = [] };
like $@, qr/^Assigned value is not a SCALAR reference at/,
'list-assigning non-scalar ref to scalar ref';
eval { (\$::x = []) };
like $@, qr/^Assigned value is not a SCALAR reference at/,
'list-assigning non-scalar ref to package scalar ref';
eval { my @x; (\@x) = {} };
like $@, qr/^Assigned value is not an ARRAY reference at/,
'list-assigning non-array ref to array ref';
eval { (\@::x) = {} };
like $@, qr/^Assigned value is not an ARRAY reference at/,
'list-assigning non-array ref to package array ref';
eval { my %x; (\%x) = [] };
like $@, qr/^Assigned value is not a HASH reference at/,
'list-assigning non-hash ref to hash ref';
eval { (\%::x) = [] };
like $@, qr/^Assigned value is not a HASH reference at/,
'list-assigning non-hash ref to package hash ref';
eval { use feature 'lexical_subs';
no warnings 'experimental::lexical_subs';
my sub x; (\&x) = [] };
like $@, qr/^Assigned value is not a CODE reference at/,
'list-assigning non-code ref to lexical code ref';
eval { (\&::x) = [] };
like $@, qr/^Assigned value is not a CODE reference at/,
'list-assigning non-code ref to package code ref';
eval '(\do{}) = 42';
like $@, qr/^Can't modify reference to do block in list assignment at /,
"Can't modify reference to do block in list assignment";
eval '(\pos) = 42';
like $@,
qr/^Can't modify reference to match position in list assignment at /,
"Can't modify ref to some scalar-returning op in list assignment";
eval '(\glob) = 42';
like $@,
qr/^Can't modify reference to glob in list assignment at /,
"Can't modify reference to some list-returning op in list assignment";
eval '\pos = 42';
like $@,
qr/^Can't modify reference to match position in scalar assignment at /,
"Can't modify ref to some scalar-returning op in scalar assignment";
eval '\(local @b) = 42';
like $@,
qr/^Can't modify reference to localized parenthesized array in list(?x:
) assignment at /,
q"Can't modify \(local @array) in list assignment";
eval '\local(@b) = 42';
like $@,
qr/^Can't modify reference to localized parenthesized array in list(?x:
) assignment at /,
q"Can't modify \local(@array) in list assignment";
eval '\local(@{foo()}) = 42';
like $@,
qr/^Can't modify reference to array dereference in list assignment at/,
q"'Array deref' error takes prec. over 'local paren' error";
eval '\(%b) = 42';
like $@,
qr/^Can't modify reference to parenthesized hash in list assignment a/,
"Can't modify ref to parenthesized package hash in scalar assignment";
eval '\(my %b) = 42';
like $@,
qr/^Can't modify reference to parenthesized hash in list assignment a/,
"Can't modify ref to parenthesized hash (\(my %b)) in list assignment";
eval '\my(%b) = 42';
like $@,
qr/^Can't modify reference to parenthesized hash in list assignment a/,
"Can't modify ref to parenthesized hash (\my(%b)) in list assignment";
eval '\%{"42"} = 42';
like $@,
qr/^Can't modify reference to hash dereference in scalar assignment a/,
"Can't modify reference to hash dereference in scalar assignment";
eval '$foo ? \%{"42"} : \%43 = 42';
like $@,
qr/^Can't modify reference to hash dereference in scalar assignment a/,
"Can't modify ref to whatever in scalar assignment via cond expr";
eval '\$0=~y///=0';
like $@,
qr#^Can't modify transliteration \(tr///\) in scalar assignment a#,
"Can't modify transliteration (tr///) in scalar assignment";
# Miscellaneous
{
local $::TODO = ' ';
my($x,$y);
sub {
sub {
\$x = \$y;
}->();
is \$x, \$y, 'lexical alias affects outer closure';
}->();
is \$x, \$y, 'lexical alias affects outer sub where vars are declared';
}
view all matches for this distributionview release on metacpan - search on metacpan
( run in 0.750 second using v1.00-cache-2.02-grep-82fe00e-cpan-cec75d87357c )