{
package CalendarEntry;
sub new {
my $pkg = shift;
bless {
dates => [],
name => shift,
}, $pkg
}
sub add_date {
my $self = shift;
push @{ $self->{'dates'} }, @_;
}
} # end CalendarEntry.
my @entries; # array of CalendarEntry objects.
my $entry;
while (<>) {
chomp;
if ( /calendar: (.*)/ ) {
defined $entry and push @entries, $entry;
$entry = new CalendarEntry $1;
}
else {
$entry->add_date( $_ );
}
}
defined $entry and push @entries, $entry;
####
my %entries = map { $_->{'name'} => $_->{'dates'} } @entries;
####
@some_dates = @{ $entries{'Calendar_2_test'} };