package My::Examples;
my @states = (undef, # we want to start from one :)
qw/Alabama Alaska Arizona Arkansas California Colorado Connecticut
Delaware Florida Georgia Hawaii Idaho Illinois Indiana Iowa Kansas
Kentucky Louisiana Maine Maryland Massachusetts Michigan Minnesota
Mississippi Missouri Montana Nebraska Nevada/, 'New Hampshire',
'New Jersey', 'New Mexico', 'New York', 'North Carolina',
'North Dakota', qw/Ohio Oklahoma Oregon Pennsylvania/, 'Rhode Island',
'South Carolina', 'South Dakota', qw/Tennessee Texas Utah Vermont
Virginia Washington/, 'West Virginia', 'Wisconsin', 'Wyoming'
);
sub getStateName {
my $self = shift;
$states[shift];
}
sub getStateNames {
my $self = shift;
join "\n", map {$states[$_]} @_;
}
sub getStateList {
my $self = shift;
[map {$states[$_]} @{shift()}];
}
sub getStateStruct {
my $self = shift;
my %states = %{shift()};
# be careful to distinguish block from hash. Just {} won't work
+{map {$_ => $states[$states{$_}]} keys %states};
}
1;