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


in reply to print out the values from a hash

choroba has provided excellent suggestions. Here an option that uses a hash of arrays (HoA), where the key is the file name and its associated value is a reference to a list of frequencies:

use strict; use warnings; my %files; for my $file (<*.abc>) { open my $fh, '<', $file or die $!; while (<$fh>) { push @{ $files{$file} }, $1 if /FREQ\s+([\d.]+)/; } close $fh; } print "$_ FREQ @{ $files{$_} }\n" for keys %files;

Output on files containing FREQ <val> info:

file3.abc FREQ 27.047 400 file1.abc FREQ 33.3 2.22 file2.abc FREQ 12345.67

Hope this helps!