projects
/
spider.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix pc39 handling?
[spider.git]
/
perl
/
DXUser.pm
diff --git
a/perl/DXUser.pm
b/perl/DXUser.pm
index ff45336f30b6732d765004e1de513c3f6b8ff76f..fa9e109f56cbe5a1cb3ca8cf7b66307290f1a535 100644
(file)
--- a/
perl/DXUser.pm
+++ b/
perl/DXUser.pm
@@
-77,6
+77,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}} ;
if (@_) {
$self->{$name} = shift;
}
if (@_) {
$self->{$name} = shift;
}
@@
-209,9
+212,10
@@
sub put
confess "Trying to put nothing!" unless $self && ref $self;
my $call = $self->{call};
# delete all instances of this
confess "Trying to put nothing!" unless $self && ref $self;
my $call = $self->{call};
# delete all instances of this
- for ($dbm->get_dup($call)) {
- $dbm->del_dup($call, $_);
- }
+# for ($dbm->get_dup($call)) {
+# $dbm->del_dup($call, $_);
+# }
+ $dbm->del($call);
delete $self->{annok} if $self->{annok};
delete $self->{dxok} if $self->{dxok};
$dbm->put($call, $self->encode);
delete $self->{annok} if $self->{annok};
delete $self->{dxok} if $self->{dxok};
$dbm->put($call, $self->encode);
@@
-255,9
+259,10
@@
sub del
my $self = shift;
my $call = $self->{call};
# delete all instances of this
my $self = shift;
my $call = $self->{call};
# delete all instances of this
- for ($dbm->get_dup($call)) {
- $dbm->del_dup($call, $_);
- }
+# for ($dbm->get_dup($call)) {
+# $dbm->del_dup($call, $_);
+# }
+ $dbm->del($call);
}
#
}
#