1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
#!/usr/bin/perl $/ = ""; # Eat a paragraph at once. while(<STDIN>) { chop; s/\n/ /gm; if (/^=head1 /) { $name = 0; } elsif ($name) { if (/ - /) { s/ - .*//; s/,\s+/,/g; s/\s+,/,/g; s/^\s+//g; s/\s+$//g; s/\s/_/g; push @words, split ','; } } if (/^=head1 *NAME *$/) { $name = 1; } } print join("\n", @words),"\n";