Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW

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) {
for my $aref_acc_key (sort keys %$acc_num) { my $aref_acc_num = $acc_num->{$aref_acc_key};

Replies are listed 'Best First'.
Re^2: Loosing Negative Values in Array Ref
by Anonymous Monk on Jun 03, 2009 at 13:57 UTC
      By that point in the code, there are no negatives anyway

      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".
      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.
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?

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

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (7)
As of 2020-05-29 08:29 GMT
Find Nodes?
    Voting Booth?
    If programming languages were movie genres, Perl would be:

    Results (168 votes). Check out past polls.