use warnings;
use strict;
use Extra;
{
my $filename = 'extra-open.txt';
Extra::open my $fh, '>', $filename
or die "opening '$filename' for write: $!";
defined $fh or die "write filehandle not defined";
print $fh "Extra open works just fine \n";
print $fh "at ", scalar(localtime), "\n";
close $fh or die "closing '$filename' after write";
undef $fh;
Extra::open $fh, '<', $filename
or die "opening '$filename' for read: $!";
defined $fh or die "read filehandle not defined";
print '<<', <$fh>, '>>';
close $fh or die "closing '$filename' after read";
}
Extra.pm:
package Extra;
sub open { # works
my (undef, $direction, $filename) = @_;
return open $_[0], $direction, $filename;
}
# sub open (\$@) { # works
#
# my ($sr_fh, $direction, $filename) = @_;
#
# return open $$sr_fh, $direction, $filename;
#
# }
1;
(Tested under ActiveState 5.8.9 and Strawberry 5.14.4.1.)
Give a man a fish: <%-{-{-{-<
|