#! /usr/bin/perl -w
    eval 'exec /usr/bin/perl -S $0 ${1+"$@"}'
        if 0; #$running_under_some_shell

use strict;
use File::Find ();

# Set the variable $File::Find::dont_use_nlink if you're using AFS,
# since AFS cheats.

# for the convenience of &wanted calls, including -eval statements:
use vars qw/*name *dir *prune/;
*name   = *File::Find::name;
*dir    = *File::Find::dir;
*prune  = *File::Find::prune;

sub wanted;
sub doexec ($@);


# MAIN
# Traverse desired filesystems
use Cwd ();
my $cwd = Cwd::cwd();

print "CWD $cwd\n";

File::Find::find({wanted => \&wanted}, '.');

report();

exit;


sub wanted {
    /^.*\.txt\z/s &&
    doexec(0, 'grep','_\s*(','{}');
#	open 
}



my $terms = {}; ## the terms hash

sub doexec ($@) {
    my $ok = shift;
#    my @command = @_; # copy so we don't try to s/// aliases to constants

#    for my $word (@command)
#        { $word =~ s#{}#$name#g }
 
   if ($ok) {
        my $old = select(STDOUT);
        $| = 1;
#        print "@command";
        select($old);
        return 0 unless <STDIN> =~ /^y/;
    }
    chdir $cwd; #sigh

#    print "looking at $name\n";

    open IN, "$name" or die "$! cannot open $name";

    while (<IN>)
    {
	if (/(\w+)\=/)
	{
#	    print "in $name, Found $1 \n";
	    $terms->{$1}->{$name}++;
	    $terms->{$1}->{TOTAL}++;
	}
    }

    close IN;

    chdir $File::Find::dir;
    return !$?;
}

sub report
{
foreach my $term (sort keys %{$terms})
{
    print $term . "\n";
#."\t" . $terms->{$term}->{TOTAL} . "\n";

}
}
