X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXDb.pm;h=6ee8f939de92e235ebd0144350c79c79550fbd47;hb=ba0bc47c95759a369af81fb19556c48261530a79;hp=a7f31acca8ec1f4e07b59c187b910e252b77e812;hpb=0bd9d2811cc42417676a1b11b121681c2377d70a;p=spider.git diff --git a/perl/DXDb.pm b/perl/DXDb.pm index a7f31acc..6ee8f939 100644 --- a/perl/DXDb.pm +++ b/perl/DXDb.pm @@ -48,6 +48,12 @@ $lastprocesstime = time; $nextstream = 0; %stream = (); +use vars qw($VERSION $BRANCH); +$VERSION = sprintf( "%d.%03d", q$Revision$ =~ /(\d+)\.(\d+)/ ); +$BRANCH = sprintf( "%d.%03d", q$Revision$ =~ /\d+\.\d+\.(\d+)\.(\d+)/ ) || 0; +$main::build += $VERSION; +$main::branch += $BRANCH; + # allocate a new stream for this request sub newstream { @@ -76,9 +82,10 @@ sub load { my $s = readfilestr($dbbase, "dbs", "pl"); if ($s) { - my $a = { eval $s } ; + my $a; + eval "\$a = $s"; confess $@ if $@; - %avail = %{$a} if $a + %avail = ( %$a ) if ref $a; } } @@ -347,6 +354,9 @@ sub AUTOLOAD $name =~ s/.*:://o; confess "Non-existant field '$AUTOLOAD'" if !$valid{$name}; + # this clever line of code creates a subroutine which takes over from autoload + # from OO Perl - Conway + *{$AUTOLOAD} = sub {@_ > 1 ? $_[0]->{$name} = $_[1] : $_[0]->{$name}} ; @_ ? $self->{$name} = shift : $self->{$name} ; }