use strict; use warnings; use 5.010; my $string = q{TestVar(Test1->(xy))->Var2(Test2(10)(12))->Finalvar}; say $string; my $parenDepth = 0; my $newString = q{}; foreach my $char ( split m{}, $string ) { if ( $char eq q{(} ) { $parenDepth ++; } elsif ( $char eq q{)} ) { $parenDepth --; } else { $newString .= $char unless $parenDepth; } } say $newString; #### TestVar(Test1->(xy))->Var2(Test2(10)(12))->Finalvar TestVar->Var2->Finalvar