my $x = dopen( '/dev/null', 'file-not-found', '/etc/passwd' );
sub dopen {
my @t = map {
my $fh;
open $fh, '<', $_ and <$fh> or warn "Can't open `$_': $!\n";
} @_;
\@t;
}
__END__
Can't open `/dev/null':
Can't open `file-not-found': No such file or directory
####
sub dopen {
my @t = map {
my $fh;
open $fh, '<', $_ ?
<$fh> :
warn "Can't open `$_': $!\n";
} @_;
\@t;
}
####
do { warn "Can't open `$_': $!\n"; () }
####
(warn "Can't open `$_': $!\n")[()]
####
my $x = dopen( '/dev/null', 'file-not-found', '/etc/passwd' );
sub dopen {
my $out = [];
FILE:
foreach my $file ( @_ ) {
my $fh;
if ( ! open $fh, '<', $file ) {
warn "Can't read '$file': $!\n";
next FILE;
}
push @{$out}, <$fh>;
}
return $out;
}
__END__
Can't read 'file-not-found': No such file or directory