Hi

this

my (@overall,@electronics,@safety) =   ...

can't work, because you are declaring private variables with my.

Private vars stop to exist at end of their scope, which is at most the files boundary.

But you are trying to export global package variables, with

our @EXPORT_OK = qw(@overall @electronics @safety);

so better try

our (@overall,@electronics,@safety) =   ...

our will make @overall et.al. act as aliases for @xyz::overall and the exporter can find them.

(untested)

HTH! :)

update

furthermore returning \@arrayrefs to @arrays doesn't work like this.

Returning shouldn't be necessary if you declare the global variables prior to the function and assign directly inside.

so better try something like

our (@overall,@electronics,@safety); sub breakouts { my (@LoL)=@_; my $i=0; foreach(@LoL){ push @overall,@{$LoL[$i]}[1].":".@{$LoL[$i]}[0]; push @electronics,@{$LoL[$i]}[2].":".@{$LoL[$i]}[0]; push @safety,@{$LoL[$i]}[3].":".@{$LoL[$i]}[0]; $i++; } } breakouts(@products);

Cheers Rolf
(addicted to the Perl Programming Language :)
Wikisyntax for the Monastery FootballPerl is like chess, only without the dice


In reply to Re: Returning arrays from a package by LanX
in thread Returning arrays from a package by sherab

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.