You could at least dispense with the pushes and declare the array in one go.
Code:
my %basis = (
"2" => "2 Adults",
"3" => "3 Adults",
"4" => "4 Adults",
"2-1" => "2 Adults + 1 Child",
"2-2" => "2 Adults + 2 Children",
);
print "$_ => $basis{$_}\n" for (sort keys %basis);
Or, if you want a programmatic way to do it:
Code:
my %basis = map {$_=>make_str($_)} ('2','3','4','2-1','2-2');
sub make_str {
my ($adults,$kids)= split/-/, shift;
return "$adults Adults + $kids Kids" if $kids;
return "$adults Adults";
}
--
Charlie Harvey's website - linux, perl, java, anarchism and punk rock:
http://charlieharvey.org.uk