Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

Re: Parsing a data file to find the highest value.

by tcf03 (Deacon)
on Nov 30, 2007 at 19:08 UTC ( #654171=note: print w/replies, xml ) Need Help??


in reply to Parsing a data file to find the highest value.

Depending on the file format, perhaps something like this?
#!/usr/bin/perl use strict; use warnings; my %prns; for (<DATA>) { my ( $num, $prn ) = split /\s/; $prns{$num} = $prn; } my @ord = sort { $b <=> $a } keys %prns; print "Highest numbered printer is $prns{shift @ord}\n"; __DATA__ 1 prt1 2 prt2 99 prt99 10 prt10 100 prt100 7 prt7
update
use strict; use warnings; my %prns; for (<DATA>) { my ( $printer, $num, $cmd ) = split /:/; $prns{$num} = $printer; } my @ord = sort { $b <=> $a } keys %prns; print "Highest numbered printer is $prns{shift @ord}\n"; __DATA__ M08_amvpss09_MEDIP :275:lp -damvpss09 M07_amvpss09_MEDIP :279:lp -damvpss09 M09_amvpss09_MEDIP :278:lp -damvpss09 M01_amvpss09_MEDIP :2:lp -damvpss09 M04_amvpss09_MEDIP :1000:lp -damvpss09
Ted
--
"That which we persist in doing becomes easier, not that the task itself has become easier, but that our ability to perform it has improved."
  --Ralph Waldo Emerson

Replies are listed 'Best First'.
Re^2: Parsing a data file to find the highest value.
by fenLisesi (Priest) on Nov 30, 2007 at 19:19 UTC
    Why would you do a full sort just to find the maximum value?
      Its just what I though of first. You could also do:
      use strict; use warnings; use List::Util qw(max); my %prns; while (<DATA>) { my ( $printer, $num, $cmd ) = split /:/; $prns{$num} = $printer; } print "Highest numbered printer is $prns{max (keys %prns) }\n"; __DATA__ M08_amvpss09_MEDIP :275:lp -damvpss09 M07_amvpss09_MEDIP :279:lp -damvpss09 M09_amvpss09_MEDIP :278:lp -damvpss09 M01_amvpss09_MEDIP :2:lp -damvpss09 M04_amvpss09_MEDIP :1000:lp -damvpss09
      Something line FunkyMonk's suggestion would work as well.
      Ted
      --
      "That which we persist in doing becomes easier, not that the task itself has become easier, but that our ability to perform it has improved."
        --Ralph Waldo Emerson

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (7)
As of 2020-10-30 18:30 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    My favourite web site is:












    Results (282 votes). Check out past polls.

    Notices?