use strict; use warnings; use Test::More; use Test::FailWarnings; plan tests => 2; my $WRITTEN; { package My::Framed; use parent qw( IO::Framed ); sub READ { my ($fh) = @_; die if !$fh->isa('GLOB'); $_[1] .= ('x') x $_[2]; return $_[2]; } sub WRITE { my ($fh, $payload) = @_; $WRITTEN .= $payload; return length $payload; } } my $framed = My::Framed->new(\*STDIN); is( $framed->read(7), 'xxxxxxx', 'READ override', ); $framed->write('Hello'); is( $WRITTEN, 'Hello', 'WRITE override' );