#!./perl BEGIN { chdir 't'; @INC = '../lib'; require './test.pl'; } print "1..7\n"; { package TieAll; # tie, track, and report what calls are made my @calls; sub AUTOLOAD { for ($AUTOLOAD =~ /TieAll::(.*)/) { if (/TIE/) { return bless {} } elsif (/calls/) { return join ',', splice @calls } else { push @calls, $_; # FETCHSIZE doesn't like undef # if FIRSTKEY, see if NEXTKEY is also called return 1 if /FETCHSIZE|FIRSTKEY/; return; } } } } tie $x, 'TieAll'; tie @x, 'TieAll'; tie %x, 'TieAll'; {our $x;} is(TieAll->calls, '', 'our $x has no runtime effect'); {our ($x);} is(TieAll->calls, '', 'our ($x) has no runtime effect'); {our %x;} is(TieAll->calls, '', 'our %x has no runtime effect'); {our (%x);} is(TieAll->calls, '', 'our (%x) has no runtime effect'); {our @x;} is(TieAll->calls, '', 'our @x has no runtime effect'); {our (@x);} is(TieAll->calls, '', 'our (@x) has no runtime effect'); $y = 1; { my $y = 2; { our $y = $y; is($y, 2, 'our shouldnt be visible until introduced') } }