in reply to multiple __DATA__ && __END__
I was unaware of the nifty modules mentioned. Up until now I have tended use prefixes to distinguish multiple categories of data in the __DATA__ section. If for aesthetic reasons you want to stick a __DATA__ section before __END__ (after which you could, e.g., have your POD), just stop reading from DATA when you see /^__END__$/.
E.g.:
use strict;
use warnings;
while (<DATA>) {
chomp;
last if /^__END__$/; # stop when __END__ is encountered
next if /^\s*(#.*|\s*)$/; # skip blank lines or comment lines
# Clip out and remove category prefix ("word" characters terminated by a colon)
if (s/^(\w+)://) {
my $category = $1;
# P.S. It's not really necessary to copy $1, but good if you are going to be
# fooling with other regex stuff.
print "$_ is in the $category category\n";
} else {
die "unexpected input in __DATA__ section: '$_'";
}
}
exit 0;
__DATA__
# 3 categories: animal, vegetable, and mineral
ANIMAL:dog
ANIMAL:cat
VEGETABLE:apple
VEGETABLE:mushroom, the State Vegetable of Pennsylvania,
MINERAL:granite
__END__
=pod
hoo hah
=cut
|
|---|