die "Usage: $0 infile outfile\n" unless ( @ARGV == 2 ); my $infile = shift; my $outfile = shift; open( INPUT, '<', $infile ) or die "$infile: $!\n"; open( OUTPUT, '>', $outfile ) or die "$outfile: $!\n"; while () { # do stuff with $_; # print something to OUTPUT }