$filename = $ARGV[0]; #corrected from @ARGV[0] as suggested by eyepopslikeamosquito open (FILE,"$filename") || die "Can't Open $filename: $!\n"; @LINES=; #slurping into array foreach my $line(@LINES){ #process something here } #### $filename = $ARGV[0]; open (FILE,"$filename") || die "Can't Open $filename: $!\n"; while{ #dealing with it per-lines #process something here }