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

Re: Generating a list of numbers from other lists

by Not_a_Number (Parson)
on Jan 29, 2012 at 19:43 UTC ( #950634=note: print w/replies, xml ) Need Help??

in reply to Generating a list of numbers from other lists

Somewhat late, but putting it all together, this is one solution:

use Modern::Perl; use List::Util qw/ max sum /; use autodie; open my $fh1, '<', 'LookingForTheseNumbersList'; chomp ( my @wanted = <$fh1> ); close $fh1; open my $fh2, '<', 'NumbersList'; my %found; while ( <$fh2> ) { if ( /(\d+)\s+(\d+)/ and $1 ~~ @wanted ) { push @{ $found{$1} }, $2; } } close $fh2; for my $k ( sort { $a <=> $b } keys %found ) { my @nums = @{ $found{$k} }; say "All($k): " . join ' ', @nums; # Do some calculations, eg: say "Max($k): " . max @nums; say "Sum($k): " . sum @nums; say "Avg($k): " . ( sum @nums ) / @nums; say ''; # Print newline }

Update; removed '.tmp' suffix from input file names

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://950634]
[Eily]: I just wrote a oneliner to solve a (non perl) colleague's problem, and it worked on the first try
[Eily]: and he wasn't impressed
1nickt adds gingersnaps to the platter on the sideboard.
[Eily]: sure it was a pretty standard one liner (of the $h{$1} = $2 if /regex/; END { pp \%h; } variety), but he's not supposed to know that!
[Eily]: what's the point of writing perl if people aren't impressed :P
[sierpinski]: Haha

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (10)
As of 2017-04-26 15:00 GMT
Find Nodes?
    Voting Booth?
    I'm a fool:

    Results (482 votes). Check out past polls.