in reply to print and display values

Building on NetWallah’s approach, and adding logic to handle the pre-defined limit:

#! perl use strict; use warnings; use constant LIMIT => 2; my %cats; while (<DATA>) { my ($value, $key) = split; push @{ $cats{$key} }, $value; } for my $key (sort keys %cats) { my @vals = @{ $cats{$key} }; while (@vals) { print $key; my $count = 0; while (@vals && ++$count <= LIMIT) { print ' ', shift @vals; } print "\n"; } } __DATA__ 1 cat1 2 cat1 3 cat2 4 cat3 5 cat3 6 cat1 7 cat1

Output:

12:58 >perl 1565_SoPW.pl cat1 1 2 cat1 6 7 cat2 3 cat3 4 5 12:58 >

Hope that helps,

Athanasius <°(((><contra mundum Iustus alius egestas vitae, eros Piratica,