#! perl -slw use strict; my $foo; sub test{ print "@$foo" } for my $ref ( [ 1,2,3 ], [ 4,5,6 ] ) { $foo = $ref; test(); } __END__ P:\test>test3 1 2 3 4 5 6 #### #! perl -slw use strict; my $foo; sub test{ print "@$foo" } for $foo ( [ 1,2,3 ], [ 4,5,6 ] ) { test(); } __END__ P:\test>test3 Can't use an undefined value as an ARRAY reference at P:\test\test3.pl line 6.