That's one of the cases where it's easier (and actually required) to iterate over the indexes rather the elements themself. $#data is the index of the last element in the array @data:

my @ref = qw(Red Green Yellow); my @data = qw(Yellow Black Yellow Red White Yellow); for my $search (@ref) { my @found; for my $index (0..$#data) { if ($data[$index] eq $search) { push @found, $index; } } print "$search: [@found]\n"; }
Red: [3] Green: [] Yellow: [0 2 5]
This should give you most of what you need for your task. Are you familiar with grep? If so it can be used to get the @found array in one line rather than with a explicit loop.

Also, while it's kind of acceptable to not use strict when testing, you should always avoid using one letter names for variables. Mostly for clarity, but also because some of them might have some hidden side effect / behaviour.


In reply to Re: Get identical elements and index from 2 Arrays in Perl by Eily
in thread Get identical elements and index from 2 Arrays in Perl by rebkirl

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.