#!/usr/bin/perl
# this script parses lines like this from a parameter.xml file
#
$FileName="parameter.xml";
my $RefParaNames = ReadParaNames($FileName);
my @ParaNames=@$RefParaNames;
print "ParaNames=$#ParaNames\n";
my $NParas = MinAB($#ARGV, $#ParaNames) + 1;
print "ARGV[0]= $ARGV[0] \n";
# generate regular expressions for each parameter
for (my $i=0; $i<$NParas; ++$i) {
$RegExpList[$#RegExpList+1] = "$ParaNames[$i]=\"$ARGV[$i]";
print $RegExpList[$#RegExpList]."\n";
}
open(FILE, "<$FileName");
while() {
my $NoHitCount=0;
foreach $RegExp (@RegExpList) {
if (!/$RegExp/i) {
$NoHitCount++;
}
}
if ($NoHitCount == 0) {
print $_;
}
}
close FILE;
sub Usage()
{
print "usage:\n";
print "showspikes.pl ";
foreach $Name (@ParaNames) {
print " <$Name>";
}
print "\n";
}
# read parameter names from xml file
sub ReadParaNames(*)
{
my $FileName = shift;
open(FILE, "<$FileName");
my @ParaNames;
while() {
if (/$b) ? $a : $b;
}
sub MinAB(**)
{
my $a=shift;
my $b=shift;
return ($a<$b) ? $a : $b;
}