Here's the script I used if you want to verify...

#!/usr/bin/perl

$sd = '/usr/lib/perl5/site_perl/5.8.0/DateTime/TimeZone';
my %Spans;

use File::Find;
use Data::Dumper;

-d $sd or die "oops\n";

my $span_count = 0;
my $file_count = 0;

find (\&wanted, $sd);

print "TZ module count: $file_count\n";
print "     Span count: $span_count\n";
print "       Crunched: ", scalar keys %Spans, "\n";

exit;

sub wanted {
  return unless /\.pm$/;
  my $name = $File::Find::name;
  open(M, "<$name") or die "Problem opening $name\n";
  my $olson = 0;
  my $spans = 0;
  my $str;
  my $span;
  while (<M>) {
    ++$olson if /Olson data version/;
    next unless $olson;
    if (/my\s+\$spans/) {
      ++$spans;
      ++$file_count;
      next;
    }
    $str .= $_ if $spans;
    if (/\];/) {
      $spans = $olson = 0;
      eval "\$span = $str";
      print "oops: [EMAIL PROTECTED]" if $@;
      foreach (@$span) {
        ++$span_count;
        my $str = Dumper($_);
        ++$Spans{$str};
      }
      $str = '';
    }
  }
}

#########




Reply via email to