http://qs321.pair.com?node_id=1068143


in reply to Re: Perl delete function
in thread Perl delete function

Please refer to my updated post. Thanks.

Replies are listed 'Best First'.
Re^3: Perl delete function
by LanX (Saint) on Dec 23, 2013 at 06:48 UTC
    Keys in hashes are unique, so you never had more than one "apple" in hash %m2.

    But it's still unclear which logic you expect, because thats a perfect set operation.

    Could it be that you want to compare arrays one by one by position?

    Then please use a loop to do so.

    Cheers Rolf

    ( addicted to the Perl Programming Language)

      Yes, I would like to compare the arrays one by one by position. I have attempted following:
      use strict; use warnings; open (FILE, "a") or die "Unable to open ref file.\n"; my @data1 =<FILE> ; close(FILE); open (FILE, "b") or die "Unable to open new file.\n"; my @data2 =<FILE> ; close(FILE); my $i; for( $i = 0; $i < 2; $i++){ if ($data1[$i] ne $data2[$i]){ print "Mismatch for $data1[$i] and $data2[$i]\n"; exit; } }
      But the error occurs when file 1 contains one line and file 2 contains 2 lines.

        You need to determine the size of the smaller array and restrict the loop accordingly.

        my $size = @data1 < @data2 ? @data1 : @data2;