#!/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; }