package io::socket::inet::encrypted; use base qw(io::socket::inet); then override methods, like syswrite()? sub syswrite { my $buf = $_[0]; $buf = crypt($buf); base::syswrite($buf); # I don't know what base is... # of if I use @ISA and SUPER:: }