knoppix@Microknoppix:~$ perl -Mstrict -MData::Dumper -we ' > my @arr; > push @{ $arr[ do { my $v = $1 - 1 if m{(\d+)$} } ] }, $_ > for glob q{{red,blue}-{small,medium,large}-{1,2,3,4}}; > print Data::Dumper->Dumpxs( [ \ @arr ], [ qw{ *arr } ] );' @arr = ( [ 'red-small-1', 'red-medium-1', 'red-large-1', 'blue-small-1', 'blue-medium-1', 'blue-large-1' ], [ 'red-small-2', 'red-medium-2', 'red-large-2', 'blue-small-2', 'blue-medium-2', 'blue-large-2' ], [ 'red-small-3', 'red-medium-3', 'red-large-3', 'blue-small-3', 'blue-medium-3', 'blue-large-3' ], [ 'red-small-4', 'red-medium-4', 'red-large-4', 'blue-small-4', 'blue-medium-4', 'blue-large-4' ] ); knoppix@Microknoppix:~$