stylerr has asked for the wisdom of the Perl Monks concerning the following question:
Hello,
Consider this text:
my $text = " $sub24835->($sub24839->($sub24828->($sub24840->("( a1"),$sub24841->(" +a1 ) ")),$sub24830->($sub24853->("( a2 "),$sub24854->(" a2 )")),$sub2 +4828->($sub24840->("( a1"),$sub24841->(" a1 ) ")),$sub24842->($sub248 +43->("0"),$sub24830->($sub24853->("( a2 "),$sub24854->(" a2 )")),$sub +24828->($sub24840->("( a1"),$sub24841->(" a1 ) "))),$sub24830->($sub2 +4853->("( a2 "),$sub24854->(" a2 )")),$sub24828->($sub24840->("( a1") +,$sub24841->(" a1 ) ")),$sub24832->($sub24855->("1"),$sub24856->($sub +24857->("| a3"),$sub24859->("a3 |")),$sub24858->("a3")),$sub24849->($ +sub24850->("1"),$sub24830->($sub24853->("( a2 "),$sub24854->(" a2 )") +),$sub24832->($sub24855->("1"),$sub24856->($sub24857->("| a3"),$sub24 +859->("a3 |")),$sub24858->("a3"))))) ";
I need to find all function call duplicates: something like this:
1. $sub24828->($sub24840->("( a1"),$sub24841->(" a1 ) "))
2. $sub24830->($sub24853->("( a2 "),$sub24854->(" a2 )"))
Both 1. and 2. are occurred more than one time in the text.
I tried to use this regex:
my @ttt = $ttt =~ /(\$sub\d+->\(.*\))?.*?\1/gs;
But it is not correct.
The main problem is that I want to extract THE WHOLE function call expression:
$sub111->(...) (it should contain BOTH opening AND closing parentheses).
See extracted examples above.
Thanks in advance.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Help!!! How to find duplicates?
by jettero (Monsignor) on Dec 04, 2009 at 20:30 UTC | |
by stylerr (Initiate) on Dec 07, 2009 at 16:27 UTC | |
|
Re: Help!!! How to find duplicates?
by jacques (Priest) on Dec 05, 2009 at 00:52 UTC | |
|
Re: Help!!! How to find duplicates?
by djp (Hermit) on Dec 05, 2009 at 10:20 UTC |