Okay how about this?
#!/usr/bin/perl -w
use strict;
my @foo;
$/="";
$_ = <DATA>;
while (s/(\d+ is good.*?)<HR>//s) {
push @foo, $1;
}
print $_, "\n--------------\n" foreach (@foo);
__DATA__
<HR>
1 is good<BR>
useless data<BR>
useless data<BR>
useless data<BR>
useless data<BR>
<HR>
2 is not good <BR>
useless data<BR>
useless data<BR>
useless data<BR>
useless data<BR>
<HR>
3 is good<BR>
useless data<BR>
useless data<BR>
useless data<BR>
useless data<BR>
<HR>
4 is not good <BR>
useless data<BR>
useless data<BR>
useless data<BR>
useless data<BR>
<HR>