picard:~/tmp [11:26:38]$ perl -v | head -n 2 This is perl, v5.10.0 built for i486-linux-gnu-thread-multi picard:~/tmp [11:26:42]$ cat ../domk.pl #!/usr/bin/perl use strict; use warnings; while (<>) { chomp; print "huzzah:".collect( $_ )."!\n"; } sub collect { local *ARGV; @ARGV = @_; join '', <>; } __END__ picard:~/tmp [11:26:55]$ ls file? | ../domk.pl Can't open file1: No such file or directory at ../domk.pl line 14. huzzah:! Can't open file2: No such file or directory at ../domk.pl line 14. huzzah:! Can't open : No such file or directory at ../domk.pl line 14. huzzah:!