Would have been nice to see you code so we could show you where you are going wrong. But this seems to do what you want.
#!/usr/bin/perl use strict; use warnings; my $data = do { local $/; <DATA> }; my @data = $data =~ /STARTP(.*?)ENDP/sg; foreach (@data) { my @titles = /TITLE(.*?)ENDTITLE/sg; $_ = \@titles; } foreach my $i (0 .. $#data) { print "Block $i\n"; foreach my $j (0 .. $#{$data[$i]}) { print "Title $j:\n$data[$i][$j]\n"; } print "\n"; } __DATA__ STARTP TITLE some gibberish some more gibberish ENDTITLE TITLE some gibberish some more gibberish ENDTITLE TITLE some gibberish some more gibberish ENDTITLE ENDP STARTP TITLE some gibberish some more gibberish ENDTITLE TITLE some gibberish some more gibberish ENDTITLE TITLE some gibberish some more gibberish ENDTITLE ENDP
"The first rule of Perl club is you do not talk about
Perl club."
-- Chip Salzenberg
In reply to Re: Regex for simple parsing job
by davorg
in thread Regex for simple parsing job
by toadi
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |