1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
sub IO::String::readon{ my $self = shift; # hier das FileHandle my $len = shift; my $offs = shift; $offs = defined $offs ? $offs : $self->tell; $self->seek($offs,0); $self->read(my $buffer, $len); return $buffer; } sub IO::File::readon{ my $self = shift; # hier das FileHandle my $len = shift; my $offs = shift; $offs = defined $offs ? $offs : $self->tell; $self->seek($offs,0); $self->read(my $buffer, $len); return $buffer; }
1 2 3 4 5 6 7 8 9 10
sub UNIVERSAL::readon{ my $self = shift; # hier das FileHandle my $len = shift; my $offs = shift; $offs = defined $offs ? $offs : $self->tell; $self->seek($offs,0); $self->read(my $buffer, $len); return $buffer; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
use strict; use warnings; use IO::File; use IO::String; push @IO::File::ISA, 'CommonHandle'; push @IO::String::ISA, 'CommonHandle'; my $fh = IO::File->new; my $sh = IO::String->new; $fh->readbuffer; $sh->readbuffer; sub CommonHandle::readbuffer{ my $self = shift; print ref $self, "\n"; }