in reply to Multiple file input into a perl script

You could also read the filenames from STDIN while allowing to pass extra arguments via @ARGV like so:

#!/usr/bin/perl use strict; print "Info: ARGV is: @ARGV\n"; while (<STDIN>) { chomp; next if /^\s*$/; # skip empty lines if (-e $_) { # a regular file (might be suited to your needs) # do something with $_ as if it were shifted from @ARGV print "handling file: $_\n"; } else { warn "no such file: $_ \n"; } } __END__ usr@host:tmp> ls -1 file*.pl | fileabove.pl arg1 arg2 arg3 Info: ARGV is: arg1 arg2 arg3 handling file: fileabove.pl
It could be used i.e. this way:
ls -1 *.dat | fileabove.pl
or
fileabove.pl < filenames.txt
But finally it depends on your needs, which I might not have fully understood...
Update: Added the shebang-line to get rid of extra-calls to perl executable.