=[^=~] # = 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;
my $line_num = $.;
chomp( $line );
- next if $line =~ /^\s*#/;
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;
} else {
+ # Skip comments in code
+ next if $line =~ /^\s*#/;
+
# parse $line to see if it's a $VERSION declaration
my( $vers_sig, $vers_fullname, $vers_pkg ) =
($line =~ /VERSION/)
if ( $line =~ /$PKG_REGEXP/o ) {
$pkg = $1;
push( @pkgs, $pkg ) unless grep( $pkg eq $_, @pkgs );
- $vers{$pkg} = (defined $2 ? $2 : undef) unless exists( $vers{$pkg} );
+ $vers{$pkg} = $2 unless exists( $vers{$pkg} );
$need_vers = defined $2 ? 0 : 1;
# VERSION defined with full package spec, i.e. $Module::VERSION