On Mon, 15 Dec 2008, at 10:04:17, "James Laver" <james.la...@gmail.com> wrote:
>Using other languages is really cheating. Let them use other languages. We can improving it with Perl. In addition we are more flexible. #!/usr/bin/perl -w #*** compare_int_arrays_v002.pl ***# #------------------------------------------------- use strict; #------------------------------------------------- my (@i_list1, @i_list2); push(@i_list1, int(rand(100))) for(1..200); push(@i_list2, int(rand(20))) for(1..10); push(@i_list1, ('A'..'Z')); push(@i_list2, ('A'..'Z')); print("value:\tlist 1:\tlist 2:\n"); print("$_->[0]\t$_->[1]\t$_->[2]\n") for(@{Intersect(\...@i_list1, \...@i_list2, 1, qr/^\d+$/)}); #------------------------------------------------- sub Intersect { my ($rai_1, $rai_2, $sort_mode, $regex_search_after) = @_; return [] unless(ref($rai_1) eq 'ARRAY' && ref($rai_2) eq 'ARRAY'); my (%hi_seen, @ai_ret); # 0 = sort by value # 1 = sort by count list 1 # 2 = sort by count list 2 $sort_mode = 0 unless($sort_mode &&($sort_mode == 1 || $sort_mode == 2)); $hi_seen{$_}[0]++ for(@$rai_1); $hi_seen{$_}[1]++ for(@$rai_2); @ai_ret = map [$_, $hi_seen{$_}[0], $hi_seen{$_}[1]], grep $hi_seen{$_}[0] && $hi_seen{$_}[1] && m/$regex_search_after/, keys(%hi_seen); return [sort({ $a->[$sort_mode] <=> $b->[$sort_mode]} @ai_ret)]; } #------------------------------------------------- Torsten