#!/usr/bin/perl use strict; my $filename = shift @ARGV; my $text = ''; if (-e $filename) { open( IN_FILE, "<$filename" ) || return; local $/ = undef; # set to read to EOF $text = ; close( IN_FILE ); } my %counters; $text =~ s/(%{ INCLUDED[^}]*}%)/addTo('INCLUDED', $1)/geo; $text =~ s/%TMPL:DEF{([^}]*)}%/addTo('DEF', $1)/geo; $text =~ s/%TMPL:P{([^}]*)}%/addTo('P', $1)/geo; print "=========\n"; print "$filename \n"; foreach my $key (%counters) { next unless(defined($counters{$key})); my @array = @{$counters{$key}||[]}; print "$key (".$#array.") : \n"; if ($key eq 'INCLUDED') { print " ".join("\n ", @array)." \n"; } } sub addTo { my $arrayname = shift; my $string = shift; my @array = @{$counters{$arrayname}||[]}; push(@array, $string); $counters{$arrayname} = \@array; return ''; }