1) do $file is like eval `cat $file`, except the former 1.1: searches @INC and updates %INC. 1.2: bequeaths an *unrelated* lexical scope on the eval'ed code. #### # file foo.pl print $var,"\n"; #### # requiring code $var = 'foo'; require 'foo.pl'; #### # requiring code my $var = 'foo'; require 'foo.pl'; #### our $var; for $var ( qw(foo bar quux) ) { require 'foo.pl'; }
## # file foo.pl print $var,"\n"; ##
## # requiring code $var = 'foo'; require 'foo.pl'; ##
## # requiring code my $var = 'foo'; require 'foo.pl'; ##
## our $var; for $var ( qw(foo bar quux) ) { require 'foo.pl'; }