=[^=~] # = but not ==, nor =~
}x;
+my $PODSECT_REGEXP = qr{
+ ^=(cut|pod|head[1-4]|over|item|back|begin|end|for|encoding)\b
+}x;
sub new_from_file {
my $class = shift;
chomp( $line );
my $is_cut;
- if ( $line =~ /^=(.{0,3})/ ) {
+ if ( $line =~ /$PODSECT_REGEXP/o ) {
$is_cut = $1 eq 'cut';
$in_pod = !$is_cut;
}
if ( $in_pod ) {
- if ( $line =~ /^=head\d\s+(.+)\s*$/ ) {
+ if ( $line =~ /^=head[1-4]\s+(.+)\s*$/ ) {
push( @pod, $1 );
if ( $self->{collect_pod} && length( $pod_data ) ) {
$pod{$pod_sect} = $pod_data;
);
my %modules = reverse @modules;
-plan tests => 52 + 2 * keys( %modules );
+plan tests => 54 + 2 * keys( %modules );
require_ok('Module::Metadata');
}
{
+ # test things that look like POD, but aren't
+$dist->change_file( 'lib/Simple.pm', <<'---' );
+package Simple;
+sub podzol () { 1 }
+sub cute () { 2 }
+my $x
+=podzol
+;
+
+our $VERSION = '1.23';
+
+my $y
+=cute
+;
+
+our $VERSION = '999';
+
+---
+ $dist->regen;
+ $pm_info = Module::Metadata->new_from_file('lib/Simple.pm');
+ is( $pm_info->name, 'Simple', 'found default package' );
+ is( $pm_info->version, '1.23', 'version for default package' );
+}
+
+{
# Make sure processing stops after __DATA__
$dist->change_file( 'lib/Simple.pm', <<'---' );
package Simple;