There are problems with your calling method. While testing/debugging, I suggest you make 2 calls:
my $ro_itiv_hw = new Itiv::Hw; # do any testing on $ro_itiv_hw my ($ra_cols, $ra_hw) = $ro_itiv_hw->all_hw($dbh, $filter); # now test return values
Note that the instantiation could also have been written:
my $ro_itiv_hw = Itiv::Hw->new;
Also note that the all_hw() method returns two arrayrefs NOT two arrays.
When you're finished testing, you can chain the two commands again BUT you should use this syntax:
my ($ra_cols, $ra_hw) = Itiv::Hw->new->all_hw($dbh, $filter);
Also note how I prefix the references with 'ro_' for reference to object and 'ra_' for reference to array. Not shown here but I also use rs, rh, rc, rg for references to scalars, hashes, code and globs respectively. You will save yourself a lot of time debugging if you differentiate between references and ordinary scalar variables (e.g. strings, numbers). This scheme is what I use: use it, use someone else's or make up your own. I strongly recommend you use some method along these lines.
Regards,
PN5
In reply to Re: The correct way to return arrays from a module
by Prior Nacre V
in thread The correct way to return arrays from a module
by neilwatson
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |