I have a line of code like:
foo(bar("Hello World"));
And I want to re-factor it into:
bar("Hello World");
Of course the real statements are likely to be more complex, multiple
lines, conditionals, etc. I can remove the 'foo' bareword easily enough
but I can't figure out how to get rid of the outer list without loosing
the inner 'bar' expression.
Is PPI currently capable of such things?
I have been trying variations on the code below.
thanks,
Stuart Johnston
my $code = q{foo(bar("Hello World"));};
my $d = PPI::Document->new(\$code);
my $foo = $d->find_first('PPI::Token::Word');
my $list = $foo->next_sibling;
my $exp = $list->child(0);
$exp->remove;
$list->delete;
$foo->insert_after($exp);
|