「$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-whitespace を有効にすると、次のようなものを使用できます
$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
...
...
});
何かを追加するポイントを見つける。しかし、再試行した後、機能しないと思います(スペースなしでコードを復元できないという事実は別として)。