package Kitty; use strict; use warnings FATAL => 'all'; use Moose; use Data::Dumper; sub meow { my $self = shift; my $mm = $self->_fh_to; print $mm ("Meow!\n"); } sub close { my $self = shift; print "bb:".Dumper($self). "\n"; if (kill(0, $self->pid)) { kill(15, $self->pid); } CORE::close($self->_fh_to); delete $self->{pid}; print " closed"; } has '_fh_to' => ( is => 'rw', init_arg => 'fh_to', ); has 'pid' => ( is => 'rw', ); 1;