sub collect {
join '', map {
open my $fh, '<', $_ or warn "Can't open `$_': $!\n";
<$fh>;
} @_;
}
####
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:!
####
#!/usr/bin/perl
use strict;
use warnings;
use Test::More 'no_plan';
sub dargv {
local *ARGV;
@ARGV = @_;
<>;
}
sub dopen {
map {
open my $fh, '<', $_ or warn "Can't open `$_': $!\n";
<$fh>;
} @_;
}
while (<>) {
chomp;
is_deeply [dargv $_], [dopen $_] => $_;
}
__END__