my @array = do { local @ARGV = $name; <> }; #### #!/usr/bin/perl -w use strict; my $name = "file_b"; my ($foo1, $foo2, $foo3); $foo1 = <>; $foo2= <>; my @lines= do { local *ARGV; @ARGV =$name;<> }; $foo3 = <>; print "Lines:\n",@lines; print "\nFoos:\n",$foo1,$foo2,$foo3; #### #!/usr/bin/perl -w use strict; my $name = "file_b"; my ($foo1, $foo2, $foo3); $foo1 = <>; $foo2= <>; my @lines= do { local @ARGV =$name;<> }; $foo3 = <>; print "Lines:\n",@lines; print "\nFoos:\n",$foo1,$foo2,$foo3; #### % perl test.pl file_a Lines: Foos: File A line 1 File A line 2 File A line 3 #### % perl test.pl file_a Lines: File A line 3 File A line 4 File A line 5 File A line 6 File A line 7 File A line 8 File A line 9 File A line 10 File B line 1 File B line 2 File B line 3 File B line 4 File B line 5 File B line 6 File B line 7 File B line 8 File B line 9 File B line 10 Foos: File A line 1 File A line 2 Use of uninitialized value at test.pl line 16.