projects
/
spider.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
change build number calculation to be more accurate
[spider.git]
/
perl
/
DXDb.pm
diff --git
a/perl/DXDb.pm
b/perl/DXDb.pm
index 25e7c0827d3f0d2d0d7fd7f30d32c59ab60640ca..6ee8f939de92e235ebd0144350c79c79550fbd47 100644
(file)
--- a/
perl/DXDb.pm
+++ b/
perl/DXDb.pm
@@
-12,8
+12,7
@@
use DXVars;
use DXLog;
use DXUtil;
use DB_File;
use DXLog;
use DXUtil;
use DB_File;
-
-use Carp;
+use DXDebug;
use vars qw($opentime $dbbase %avail %valid $lastprocesstime $nextstream %stream);
use vars qw($opentime $dbbase %avail %valid $lastprocesstime $nextstream %stream);
@@
-49,6
+48,12
@@
$lastprocesstime = time;
$nextstream = 0;
%stream = ();
$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
{
# allocate a new stream for this request
sub newstream
{
@@
-77,9
+82,10
@@
sub load
{
my $s = readfilestr($dbbase, "dbs", "pl");
if ($s) {
{
my $s = readfilestr($dbbase, "dbs", "pl");
if ($s) {
- my $a = { eval $s } ;
+ my $a;
+ eval "\$a = $s";
confess $@ if $@;
confess $@ if $@;
- %avail =
%{$a} if $a
+ %avail =
( %$a ) if ref $a;
}
}
}
}
@@
-348,6
+354,9
@@
sub AUTOLOAD
$name =~ s/.*:://o;
confess "Non-existant field '$AUTOLOAD'" if !$valid{$name};
$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} ;
}
@_ ? $self->{$name} = shift : $self->{$name} ;
}