in reply to regex to match the following
Assuming the file is XML, what about something like:
use XML::Rules; my %seen; my $parser = XML::Rules->new( rules => [ '_default' => '', 'meta-parameter' => sub { return unless $_[1]->{type} eq "stored-procedure"; $seen{$_[1]->{id}}++; return; } ] ); $parser->parse(\*DATA); print "There were those stored procedures:\n"; foreach (sort keys %seen) { print " $_ ($seen{$_} times)\n"; } __DATA__ <some> <meta-parameter type="stored-procedure" id="rep_vfnz_gsm_bss_tch_ +network_report_spr"/>\ <meta-parameter id="rep_vnz_gprs_quality_report_daily_spr" typ +e="stored-procedure"/>\ <meta-parameter type="stored-procedure" id="rep_vfnz_gsm_nss_b +enchmarking_report_spr"/>\ </some>
This is much safer than trying to parse the file with regexps.
|
|---|