Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

Re: Loosing Negative Values in Array Ref

by Thelonius (Priest)
on Jun 03, 2009 at 13:41 UTC ( #768014=note: print w/ replies, xml ) Need Help??


in reply to Loosing Negative Values in Array Ref

You have

$tmp->[$i] = '0' unless defined $tmp->[$i]; ... $tmp->[$i] = $aref->[$i] if $aref->[$i] gt $tmp->[$i];
Since a "-" is lt "0", you're never going to be seeing negative numbers.

To get the array in alphabetical order, use sort. You could sort it after you create it, or you can create it in alphabetical order by changing

for my $aref_acc_num (values %$acc_num) {
to
for my $aref_acc_key (sort keys %$acc_num) { my $aref_acc_num = $acc_num->{$aref_acc_key};


Comment on Re: Loosing Negative Values in Array Ref
Select or Download Code
Re^2: Loosing Negative Values in Array Ref
by Anonymous Monk on Jun 03, 2009 at 13:57 UTC
      But how could I print my results and get for this particular element as an example this result:
      [ 'Auser Ferro', '987778999', '2008-11-30', 'W', '888', '0', '0', '0', '1', '2', '4', '0', '-5.00', '0', '0', '0', '0', '0', '0', '2.0', '2008', '1112399' ],

      Notice the "-5.00". Thats what I am looking for.
      By that point in the code, there are no negatives anyway
      No.

      Here, I think this is what you want:

      for my $aref_acc_num (sort { $a->[0] cmp $b->[0] } values %$acc_num) { push @$all_dta_acc_num, my $tmp = []; for my $aref (@$aref_acc_num) { for my $i (0..1) { $tmp->[$i] = $aref->[$i]; } for my $i (2..$#$aref) { if (!defined($tmp->[$i])) { $tmp->[$i] = $aref->[$i]; } elsif ($tmp->[$i]=~m/^[+-]?\d+$/) { #numeric $tmp->[$i] = $aref->[$i] if $aref->[$i] > $tmp->[$i]; } else { $tmp->[$i] = $aref->[$i] if $aref->[$i] gt $tmp->[$i]; } } } }
        This is very close, see the values for "Zilda Mil", it should display "14.0" but instead its getting the "9.0".
Re^2: Loosing Negative Values in Array Ref
by Anonymous Monk on Jun 03, 2009 at 14:35 UTC
    Thats true, how to keep the same logic and still check having these negative values in the array?
      Aside from the numeric vs string issue. Numeric "zero" is greater than "-5"! So maybe what you need here is to use absolute vale abs() when comparing things so that abs(-5) is > 0.?

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://768014]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (7)
As of 2014-10-22 03:21 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    For retirement, I am banking on:










    Results (112 votes), past polls