##
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;
}