#!/usr/bin/perl -sw use Data::Dumper; use strict; local $\=$/; my %patterns; open(PFILE, "whatpattern.txt")|| die "Cannot open whatpattern.txt file"; while () { chomp; next unless $_; my @tags = split /; |:/; my $key = shift @tags; $patterns{$key} = \@tags; } open(TESTFILE, "alltestfile")|| die "Cannot open alltestfile"; while(defined(my $question=)) { my @qkeys = $question =~ m!(/[A-Z0-9]+)!g; my @qvalues = $question =~ m!(.*?)(?:/[A-Z0-9]+\s+)!g; my %questionlookup; @questionlookup{@qkeys} = @qvalues; my $key = join'',@qkeys; print $question."\n\n"; if (my $answer = $patterns{$key}) { $answer =~ s!\s*$_\s*! $questionlookup{$_} !g for qkeys %questionlookup; $answer =~ s/\:/\n\n/g; print $answer; } else{ print "No Match\n"; } }