1package My::Examples;
2
3my @states = (undef, # we want to start from one :)
4    qw/Alabama Alaska Arizona Arkansas California Colorado Connecticut
5    Delaware Florida Georgia Hawaii Idaho Illinois Indiana Iowa Kansas
6    Kentucky Louisiana Maine Maryland Massachusetts Michigan Minnesota
7    Mississippi Missouri Montana Nebraska Nevada/, 'New Hampshire',
8    'New Jersey', 'New Mexico', 'New York', 'North Carolina',
9    'North Dakota', qw/Ohio Oklahoma Oregon Pennsylvania/, 'Rhode Island',
10    'South Carolina', 'South Dakota', qw/Tennessee Texas Utah Vermont
11    Virginia Washington/, 'West Virginia', 'Wisconsin', 'Wyoming'
12);
13
14sub getStateName {
15    my $self = shift;
16    $states[shift];
17}
18
19sub getStateNames {
20    my $self = shift;
21    join "\n", map {$states[$_]} @_;
22}
23
24
25sub getStateList {
26    my $self = shift;
27    [map {$states[$_]} @{shift()}];
28}
29
30sub getStateStruct {
31    my $self = shift;
32    my %states = %{shift()};
33    # be careful to distinguish block from hash. Just {} won't work
34    +{map {$_ => $states[$states{$_}]} keys %states};
35}
36
371;
38