open FILE, "foo" || die "can't open file"; # assume -T foo #### open FILE, ("foo" || die ...) #### open( FILE, $file) or die "Error: can't open file '$file': $!\n"; #### open( FH, $file1 ) or die $!; while( my $line1 = ) { print "$file1: $line"; open( FH, $file2 ) or die ...; while( my $line2 = ) { print "$file2: $line2"; } close( FH ); } # while close( FH );

gives you an error because the first close( FH ); #### open( my $FILE, $file ) or die "Error in reading file '$file': $!\n"; while( my $line = <$FILE> ) { # $line must be defined now, e.g. chomp( $line ); print "$.: $line\n"; } # while close( $FILE );