To give you the full picture, it is possible to pass arrays as parameters and circumvent the flattening of those arrays.

That involves using subroutine prototypes and is probably one of the few acceptable uses of prototypes .

It goes as follows:

use Modern::Perl; sub two_arrays (\@\@) { my @first = @{$_[0]}; my @second = @{$_[1]}; say "First array: @first"; say "Second array: @second"; } my @one = qw/een twee drie/; my @two = qw/nung song saam/; two_arrays(@one, @two);
Output:
First array: een twee drie Second array: nung song saam
The prototype (\@\@) means that this subroutine takes two arrays as parameters and a reference to those two arrays will passed to the sub. This "referencing" will happen automatically and of course it means that you must dereference it inside of your sub.

It is not the usual or expected mode of operation of using subroutines and you better document this very clearly or people will get quite confused. But it is there if you want it.

CountZero

A program should be light and agile, its subroutines connected like a string of pearls. The spirit and intent of the program should be retained throughout. There should be neither too little or too much, neither needless loops nor useless variables, neither lack of structure nor overwhelming rigidity." - The Tao of Programming, 4.1 - Geoffrey James

My blog: Imperial Deltronics

In reply to Re: Array comparison doesn't work by CountZero
in thread Array comparison doesn't work by vihar

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.