#!/usr/bin/perl use strict; use warnings; $| = 1; sub IO::Handle::DESTROY { print "desctructor enter\n"; my $self = shift; close $self or do { warn $!; exit; }; print "destructor exit\n"; } sub something { open ( my $foo, '>', '/dev/full' ); print $foo 'bar'; } print "pre\n"; something(); print "post\n";