I always start with strictures on and never turn them off. At the very least my editor then warns me about typos and variables that are either out of scope or haven't been declared yet. Having that heads up before you run the code generally saves a few debugging iterations straight off the bat!
At this point some sample data would help a lot. You can include it in a short self contained example script like this:
use warnings; use strict; my $scheduleData = <<SDATA; Person 1: Joe SDATA my $agentData = <<ADATA; Joe Moe Flo ADATA my $defsData = <<DDATA; SCRIPTNAME It's a wonderful life Person 1: Joe Person 2: Moe DDATA open my $schdIn, '<', \$scheduleData or die "Can't open 'Schedule': $! +"; my %scheduleMatch = map {chomp; $_ => 1} <$schdIn>; open my $agentsIn, '<', \$agentData or die "Can't open 'Agents': $!"; open my $defsIn, '<', \$defsData or die "Can't open 'Definitions': +$!"; my $agentsList = join '|', map {chomp; qr/\Q$_\E/} <$agentsIn>; my $agentsMatch = qr|\b($agentsList)\b|; while (defined(my $defLine = <$defsIn>)) { chomp $defLine; if ($defLine =~ $agentsMatch && $defLine !~ /(SCRIPTNAME|DESCRIPTI +ON)/) { my $lineout = $defLine; my $flag = $scheduleMatch{$defLine} ? 'Yes' : 'No'; print "$defLine | $flag\n"; } }
which prints:
Person 1: Joe | Yes Person 2: Moe | No
Then tell us where the test script doesn't work as expected or, in this case, how the output should look for the additional functionality you want.
In reply to Re^3: nesting loops help?
by GrandFather
in thread nesting loops help?
by shadowfox
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |