in reply to Re^2: Array Difference for Two Dimentional Array!
in thread Array Difference for Two Dimentional Array!

At Perlmonks, it is considered bad form to modify the contents of your post, without posting a message.

If you need to correct something, leave the original text (or use strikethrough), then add your update below, after first clearly indicating that it is an update.

This allows others to follow the thread of responses to your original text.

Your updated code reads:

@union = ((SDT,`1781183799.44927\',-----),
This is NOT a 2-dimensional array (or Array-of-Arrays (AOA)). The proper syntax for an AOA is:
@union = (['SDT','1781183799.44927\','-----'], ['BN','1781183799.44972\','-----'], ['BNN','1781183799.46753\','-----']);
I replaced your backticks with single quotes, and added other quotes to make it legal for perl.

Now, to get your @diff for this type of AOA, use this code instead of yours (UNTESTED) :

my @diff; my @inter my %count2 = (); foreach my $element (@union,@ICUNAV) { my $k=join '',@$element; $count2{$k}{COUNT}++; $count2{$k}{ELEMENT}=$element; }; foreach my $element (keys %count2) { push @{ $count2{$element}{COUNT} > 1 ? \@inter : \@diff }, $count2{$ +element}{ELEMENT}; }; print Dumper(@diff),"\n";

     "As you get older three things happen. The first is your memory goes, and I can't remember the other two... " - Sir Norman Wisdom