use strict; use warnings; use autodie qw( open close ); use English qw( -no_match_vars ); @ARGV == 1 or die "Usage: perl $PROGRAM_NAME \n"; my $input_file = shift; open my $fh, '<:encoding(ASCII)', $input_file; RECORD: while (my $record = <$fh>) { # Do something with record... } close $fh;