X-Git-Url: http://www.dxcluster.org/gitweb/gitweb.cgi?p=spider.git;a=blobdiff_plain;f=perl%2FProt.pm;h=27416735580647632a56daaed1f24072eff2be09;hp=67741752c0b495f094bc7a5dbf898857cb0136f4;hb=3292b0f8ef9af57608f5e2032bf3c0fca838eb7a;hpb=cdb2c0e3a1d778485f71d406a561b38ed5238dbc diff --git a/perl/Prot.pm b/perl/Prot.pm index 67741752..27416735 100644 --- a/perl/Prot.pm +++ b/perl/Prot.pm @@ -6,6 +6,7 @@ package Prot; use strict; + use DXUtil; use DXDebug; use vars qw(%valid); @@ -46,15 +47,14 @@ sub new sub AUTOLOAD { - no strict "refs"; - my $self = shift; + no strict; my $name = $AUTOLOAD; return if $name =~ /::DESTROY$/; - $name =~ s/.*:://o; + $name =~ s/^.*:://o; confess "Non-existant field '$AUTOLOAD'" if !$valid{$name}; - *{$AUTOLOAD} = sub {@_ > 1 ? $_[0]->{$name} = $_[1] : $_[0]->{$name}} ; - @_ ? $self->{$name} = shift : $self->{$name} ; + *$AUTOLOAD = sub {@_ > 1 ? $_[0]->{$name} = $_[1] : $_[0]->{$name}}; + goto &$AUTOLOAD; } 1;