use feature ":5.10";
use strict;
use warnings;
my $line = "05/04/2010 13:09:45 - A - somebody - ( ( my.my id >= 1 ) ) and ( ( is-relative.to code = 'sister' ) or ( is-relative.to code = 'brother' ) or ( is-mother.to code = 'dog' ) )";
my $open = 0;
my @result = ('');
for my $char (split ('',$line)) {
given ($char) {
when ('(') {
$open++
}
when (')') {
$open--;
push @result,''
}
default {
$result[-1] .= $char if $open
}
}
}
####
my.my id >= 1
is-relative.to code = 'sister'
or is-relative.to code = 'brother'
or is-mother.to code = 'dog'
##
##
for my $line (@result) {
$line =~ s/^\s+(?:or\s+)?(.*)[ >##
my.my id
is-relative.to code
is-relative.to code
is-mother.to code