#!/usr/bin/perl -w # use warnings; use strict; opendir(DH, "Configs/"); my @files = readdir(DH); closedir(DH); foreach my $file (@files) { # Read config from .txt files in Dir. open my $fh, "<", $file or die "Can't open '$file': $!"; my @config = <$fh>; close $fh; chomp @config; my $configref = \@config; # Extract names from config. my @names = map { /^name \d+\.\d+\.\d+\.\d+ ([A-Za-z0-9-_]+)$/ ? $1 : () } @{ $configref }; # Remove names from config. @config = grep { $_ !~ /^name / } @config; # Find unused name references. foreach my $name (@names) { if (!grep { $_ =~ /$name/ } @config) { print "name $name unused.\n"; } } # Extract objects from config. my @objects = map { /^(object|object-group) (network|service) ([A-Za-z0-9-_]+)$/ ? $3 : () } @{ $configref }; # Remove objects from config. @config = grep { $_ !~ /^(object|object-group) / } @config; # Find unused object references. foreach my $object (@objects) { if (!grep { $_ =~ /$object/ } @config) { print "object $object unused.\n"; } } }