Thread Arrays mit Paaren vergleichen
(6 answers)
Opened by pktm at 2010-09-09 23:29
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]}); } } |