
| Current Path : /var/www/web-klick.de/dsh/50_dev2017/1300__perllib/ |
Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 |
| Current File : /var/www/web-klick.de/dsh/50_dev2017/1300__perllib/HASH.pm |
package HASH;
use strict;
use Digest::MD5;
use Data::Dumper;
#********************************************************************************
sub key {
my $self = shift;
$self->{'MD5KEY'} = $self->{'MD5KEY'} || Digest::MD5->md5_base64(Dumper($self));
return($self->{'MD5KEY'});
}
#********************************************************************************
sub rekey {
my $self = shift;
delete($self->{'MD5KEY'});
return($self->key());
}
#********************************************************************************
sub merge {
my $self = shift;
my $diff = shift || {};
my $o; my $o1; my $zaehler; my $name;
foreach $o (keys %$diff) {
$o1 = $diff->{$o};
if (ref($o1)) {
$self->{$o} = bless($o1,ref($o1))->merge($self->{$o});
} else {
if ($o1 and $self->{$o} ne $o1) {
$name = $o;
$zaehler = 0;
if ($name =~ s/^(.*)\_(\d+)$/$1/) {
$zaehler = $2;
}
while (0 == 0) {
$zaehler = $zaehler + 1;
next if (exists ($self->{$name."_".$zaehler}));
$self->{$name."_".$zaehler} = $o1;
last;
}
}
}
}
}
#********************************************************************************
1;