use Regexp::Common;
use Cwd;
use Regexp::Common::balanced;
my $x = q(
dfjklasjfdk jdflkasdjflkasd (1989)
fdjsaflkajdf kkjdslkfjasdk
dfsdlkfjdsa fdfadsfsad sajflksadjfklasd
fkasdjfsadf Close
df adfjlkadf
dfjalkdf akdjfklasdjflkadsjfasdclose1);
my $e;
my @ele = ('extract','line');
foreach $e (@ele)
{
while ($x=~/$RE{balanced}{-begin=>"<$e"}{-end=>"<\/$e>"}{-keep}/gs)
{
my $begin = "$1";
$x =~ s/($begin)/&$e($1,$e)/egsi;
print "$x\n";
}
}
sub extract
{
my $a = $_[0];
my $tag = $_[1];
$a =~ s/<\/$tag>/<\/$tagæ>/gi;
my @a=map(!/^(".$_."<\/e>"):"\n".$_, split(/\n/,$a));
return "@a";
}
sub line
{
my $a = $_[0];
my $tag = $_[1];
$a =~ s/<\/$tag>/<\/1$tag>/gi;
my @a=map(!/^(".$_."<\/li>"):"\n".$_, split(/\n/,$a));
return "@a";
}