In the "quick and dirty" category, you can do something like this:
(I'm trying to remember off the top of my head) ########################################## my $result = ArrayCmp(\@array1,\@array2); #pass two array references sub ArrayCmp{ my($ref1,$ref2) = @_; my %tmp = (); if(@{$ref1} != @{$ref2}){ return 0; #if arrays are not same length, #then skip the rest } foreach(@{$ref1}){ $tmp{$_} = 1; #create a temporary hash with the elements #as keys } foreach(@{$ref2}){ return 0 unless $tmp{$_}; #fail if there is not a key with each #element of the second array } return 1; #if we make it this far, they're equal } ######################################### -----Original Message----- From: Bob Showalter To: 'Merritt Krakowitzer'; Beginners Sent: 7/23/02 5:49 AM Subject: RE: Comparing Arrays > -----Original Message----- > From: Merritt Krakowitzer [mailto:[EMAIL PROTECTED]] > Sent: Tuesday, July 23, 2002 3:48 AM > To: Beginners > Subject: Comparing Arrays > > > Hi > > I would like to know how to compare 2 arrays. > > I have 2 arrays and I would like to compare the contents of the data. > It doesn't matter in which order the data is stored so long > as its the same. > So comparing the bellow should read true, but if they didn't > match it would > be false. > > my @foo = qw( > foo bar cat dog > ); > my @bar = qw( > dog cat foo bar > ); > > Hope that made some sense. > I managed to find a module for comparing arrays but I would > prefer not to > do it that way. Well, they are equal without regard to order if the following is true: @foo==@bar && join($", @{{map {$_, $_} @foo}}{@bar}) eq "@bar" But the module approach is probably the way to go. :~) -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]