Can someone please provide some assitance with a multi-line matching problem? I have a datafile that looks like this:
#### Input file ######## START foo1 bar1 END START foo2 bar2 END START foo3 bar3 END I am trying to capture the contents between the START and END delineators. Here is what I have so far: #### Script ######## #!/usr/bin/perl $input_file = $ARGV[0]; open (INPUT, "<$input_file") or die "Cannot open $input_file file: $!"; local $/; while (<INPUT>){ if ( $_ =~ m/^\s*START\s+(.+?)\s+END$/smi ) { print "$1\n"; } } close (INPUT); However, when I run the script it only appears to match the START/END sequence the first time. This is what I get: #### Result ######## # ./test.pl file foo1 bar1 This is what I'm trying to achieve: # ./test.pl file foo1 bar1 foo2 bar2 foo3 bar3 Is the While loop required since I am actually slurping the file contents into a single variable? Is there a (better) mechanism to continue matching against the string if its matched once? Any help would be greatly appreciated! Thank you, Jose -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>