sub getfile { my $filename = shift; open my $FH, "<$filename" or die "Unable to open $filename: $!"; return wantarray ? map /(.*)/, <$FH> : do { local $/ ; <$FH> }; } #### sub getfile { local *ARGV ; @ARGV = shift ; wantarray ? map /(.*)/, <> : do { local $/ ; <> } } #### sub getfile { my $filename = shift; open my $FH, "<$filename" or die "Unable to open $filename: $!"; sysread $FH, my $contents, -s $FH; return wantarray ? split m{$/}, $contents : $contents; }