Thread Arrays mit Paaren vergleichen (6 answers)
Opened by pktm at 2010-09-09 23:29

topeg
 2010-09-10 00:07
#141261 #141261
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Ein verschachtelter Hash ist nicht nötig:
Code (perl): (dl )
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
#!/usr/bin/perl

use strict;
use warnings;

my @pairs_in_db = ([1,2],[1,9],[3,4],[5,6]);
my @pairs_from_somewhere_else = ([1,2],[5,6],[7,18]);

#prepare map
my %map;
# set original and a counter
$map{join(',',@$_)}=[$_,0] for(@pairs_in_db);

for(@pairs_from_somewhere_else)
{
  my $str=join(',',@$_);
  if(exists($map{$str}))
  {
    $map{$str}->[1]++;
    printf("<%02u, %02u> was in db\n", @{$map{$str}->[0]});
  }
  else
  {
    printf("<%02u, %02u> has to be inserted into the databse\n", @$_);
  }
}

for(values(%map))
{
  unless($_->[1])
  {
    printf("<%02u, %02u> will be removed\n", @{$_->[0]});
  }
}

View full thread Arrays mit Paaren vergleichen