(
foo => [ foo_1-a, foo_2-b, foo_3-b, foo_4-b ],
bar => [ bar_1-a, bar_2-a, bar_3-b, bar_4-a, bar_5_b ],
)
####
#! perl
use strict;
use warnings;
use Data::Dump;
my %hash;
while ()
{
push @{ $hash{$2} }, $1 if / ( ([^\s_]+) _ [^\s-]+ - \S+ ) /x;
}
print "\nData structure (HoA):\n";
dd \%hash;
print "\nOutput:\n";
for (sort keys %hash)
{
my $array_ref = $hash{$_};
print $_, ' ', scalar @$array_ref, ' ', join(' ', @$array_ref), "\n";
}
__DATA__
foo_1-a
foo_2-b
foo_3-b
foo_4-b
bar_1-a
bar_2-a
bar_3-b
bar_4-a
bar_5-b
####
12:43 >perl 1139_SoPW.pl
Data structure (HoA):
{
bar => ["bar_1-a", "bar_2-a", "bar_3-b", "bar_4-a", "bar_5-b"],
foo => ["foo_1-a", "foo_2-b", "foo_3-b", "foo_4-b"],
}
Output:
bar 5 bar_1-a bar_2-a bar_3-b bar_4-a bar_5-b
foo 4 foo_1-a foo_2-b foo_3-b foo_4-b
12:43 >