Я не знаю, что еще вам может понадобиться, но это работает для начинающих
СFH.pm
package WithFH;
use feature 'say';
use Moose;
has 'fh' => (is => 'ro', isa => 'FileHandle', default => sub { \*STDOUT } );
sub say {
my $self = shift;
say { $self->{fh} } "@_";
}
__PACKAGE__->meta->make_immutable;
1;
и основной
use warnings;
use strict;
use feature 'say';
use WithFH;
my $wfh = WithFH->new;
$wfh->say("hi");
Это печатает hi
до STDOUT
.