sub read { my( $self, $socket ) = @_; my $key = <$socket>; my $transform = $self->getTransform( $key ); *{__PACKAGE_::read} = eval <<"EOC"; sub { (my \$in = <\$_[ 1 ]>) =~ tr[\x20-\xfe][$transform]; \$in; } EOC return $self->read( $socket ); }