#!/usr/bin/perl use strict; use warnings; use File::Find; use Data::Dumper; use 5.010; my %master; ################### sub showhelp { print qq( Usage : $0 lang code_directory \n); exit; } ################## my ( $master, $mydir ) = @ARGV; if ( not $master && $mydir ) { showhelp(); } open my $masterf, '<', $master or die "can't open $master"; while (<$masterf>) { if (/"(\w+)"\s*=>\s*"(.+)",/) { $master{$1} = 0; } } close $masterf; find( \&findFile, $mydir ); sub findFile { return unless -f; searchfile($_); } sub searchfile { my $file=shift; # print "open $file\n"; open my $foundfile, '<', $file or die "can't open $file"; my $first=<$foundfile>; foreach my $k ( keys %master ) { while ( my $line=<$foundfile> ) { if ($line =~ m/$k/ ) { $master{$k}++ ; # print "$k found in $file\n"; } } } close $foundfile; } foreach my $k ( keys %master ) { print "$k NOT USED\n" if $master{$k} == 0; }