1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
| #!/usr/bin/perl
use strict;
use warnings;
use Storable;
sub un($);
sub get_comp_text($);
sub get_r($);
sub set_r($);
my %r;
un(\%r);
print get_comp_text(\%r) . "\n";
set_r(\%r);
get_r(\%r);
print get_comp_text(\%r). "\n";
sub un($) {
my ($rref) = @_;
push(@{$$rref{"dxf:concerne:9"}} ,1,2,3,4,5);
}
sub get_comp_text($) {
my ($rref) = @_;
my $mess = '';
foreach my $key (sort keys %$rref) {
if ($key =~ m/^dxf:concerne/ and scalar $$rref{$key} > 1 ) {
$mess .= $key .' : '. $#{$$rref{$key}} .' :: '. join(", ", @{$$rref{$key}}); # ligne 34
}
}
return $mess;
}
sub set_r($) {
my ($rref) = @_;
my (%r_solde, @keys);
foreach my $key (keys %{$rref}) {
if (ref($$rref{$key}) eq 'ARRAY') { store $$rref{$key}, $key ;
push(@keys, $key) }
else { $r_solde{$key} = $$rref{$key} }
}
store \%r_solde, "r_solde";
store \@keys , "keys";
}
sub get_r($) {
my ($rref) = @_;
my $destination = "./";
my $r_tmp = retrieve("r_solde");
foreach my $key (keys %{$r_tmp}) {
$$rref{$key} = $$r_tmp{$key}
}
my $keys_ref = retrieve("keys");
foreach my $key (@{$keys_ref}) {
my $array_ref = retrieve("$key");
for (my $i=0 ; $i<= scalar(@{$array_ref}) ; $i++) {
$$rref{$key}[$i] = $$array_ref[$i]
}
}
}
exit(0); |
Partager