当我使用“$module->prune('PPI::Token::Whitespace');”并将结果保存到$file中时,是否可以轻松地返回到保存的代码的工作代码?我试过“Perl::Tidy”,之后看起来好多了,但id并不能解决所有问题。
#!/usr/bin/env perl
use warnings;
use 5.012;
use PPI;
my $file = 'my_file.pm';
my $module = PPI::Document->new( $file );
$module->prune( 'PPI::Token::Pod' );
$module->prune( 'PPI::Token::Comment' );
$module->prune( 'PPI::Token::Whitespace' );
# ...
# ...
$module->save( $file ) or die $!;
编辑:
我再也无法重建我当初的代码了。启用了prune空白,我可以使用这样的东西
$a = $module->find( sub {
$_[1]->isa('PPI::Statement') and
$_[1]->content eq q(if($@){$have_Term_ReadKey=0;$have_Term_Size=1;eval'require "Term/Size.pm"';if($@){$have_Term_Size=0;}})
});
而不是
$a = $module->find( sub {
$_[1]->isa('PPI::Statement') and
$_[1]->schild(0)->content eq q(if) and
$_[1]->schild(1)->isa('PPI::Something') and
...
...
});
找到一个点来附加一些东西。
但是在重试之后知道我认为它不能工作(除了事实,我不能恢复没有espaces的代码)。