#!/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 = '';
}
}
}#########
