http://www.perlmonks.org?node_id=908773


in reply to Re^3: Referencing/returning array of hashes from sub
in thread Referencing/returning array of hashes from sub

Thanks, I've managed to fix my problem now (at last!). Thanks for the help.

Scrapping the big
my (@date, ...) = (@$date_ref)

and replacing with
my @date = @$date_ref; my @F_SCORE = @$F_SCORE_ref; my @F_SCORE_BOX = @$F_SCORE_BOX_ref; my @F_ROA = @$F_ROA_ref; my @F_CFO= @$F_CFO_ref; my @F_dROA = @$F_dROA; my @F_ACCRUAL = @$F_ACCRUAL_ref; my @F_dLEVER = @$F_dLEVER_ref; my @F_dLIQUID = @$F_dLIQUID_ref; my @F_EQOFFER = @$F_EQOFFER_ref; my @F_dTURN = @$F_dTURN_ref; my @F_dMARGIN = @$F_dMARGIN_ref;

did the trick (although I'm not sure why).

Replies are listed 'Best First'.
Re^5: Referencing/returning array of hashes from sub
by chromatic (Archbishop) on Jun 08, 2011 at 21:23 UTC
    although I'm not sure why

    Array assignments are greedy, just as other people have said. How is Perl to know that in:

    my (@date, @F_SCORE, ...) = (@$date_ref, @$F_SCORE_ref, ...);

    ... @date should only slurp up the elements from the flattening of @$date_ref into a list? By the time the assignment occurs, Perl has forgotten how many elements $date_ref contained.

    By the way, as I wrote before, there's no obvious and particular need to perform this copying operation. It's probably just busy work. If you're having trouble figuring out how to work with references in place, ask away and we'll help you figure out how to avoid it.

Re^5: Referencing/returning array of hashes from sub
by planetscape (Chancellor) on Jun 09, 2011 at 03:57 UTC