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