version 1.1, 2003/11/14 19:52:10
|
version 1.3, 2003/12/04 13:40:29
|
Line 78 while (my $resDBname = shift()) {
|
Line 78 while (my $resDBname = shift()) {
|
my $src; |
my $src; |
next if (! ((undef,$src) = ($key =~ /^(.*)___(.*)___count/))); |
next if (! ((undef,$src) = ($key =~ /^(.*)___(.*)___count/))); |
my $value = &unescape($value); |
my $value = &unescape($value); |
|
$src = &escape($src); |
if (exists($accessDB{$src})) { |
if (exists($accessDB{$src})) { |
$accessDB{$src}+=$value; |
$accessDB{$src}+=$value; |
} else { |
} else { |
Line 90 while (my $resDBname = shift()) {
|
Line 91 while (my $resDBname = shift()) {
|
untie %resevalDB; |
untie %resevalDB; |
# remove the keys we saved. |
# remove the keys we saved. |
next if (! scalar(@Keys)); # skip it if we did not get anything... |
next if (! scalar(@Keys)); # skip it if we did not get anything... |
if (! tie(%resevalDB,'GDBM_File',$resDBname,&GDBM_WRITER,0640)) { |
my $dbptr; |
|
if (! ($dbptr = tie(%resevalDB,'GDBM_File',$resDBname,&GDBM_WRITER,0640))){ |
die "Unable to re-tie to $resDBname. No deletes occured."; |
die "Unable to re-tie to $resDBname. No deletes occured."; |
} |
} |
foreach my $basekey (@Keys) { |
foreach my $basekey (@Keys) { |
delete($resevalDB{$basekey}); |
delete($resevalDB{$basekey}); |
} |
} |
untie %resevalDB; |
# Squish the file down |
|
$dbptr->reorganize(); |
|
$dbptr = undef; |
|
untie(%resevalDB); |
} |
} |
exit; |
exit; |
|
|
###################################### |
###################################### |
|
sub escape { |
|
my $str=shift; |
|
$str =~ s/(\W)/"%".unpack('H2',$1)/eg; |
|
return $str; |
|
} |
|
|
sub unescape { |
sub unescape { |
my $str=shift; |
my $str=shift; |
$str =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; |
$str =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; |