my $section; my %values; while (<>) { if (/\[PS_(.*)\]/) { $section=$1; } elsif (/=(.*)$/) { $values{$section}.=',' if $values{$section}; $values{$section}.=$1; } } my ($k) = reverse (sort (keys %values)); print "$values{$k}\n";