in reply to Returning arrays from a package
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! :)
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
|
|---|