Когда я использую "$ 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
...
...
});
чтобы найти точку для добавления чего-либо.
Но знайте, после повторной попытки я думаю, что это не может работать (кроме того факта, что я не могу восстановить код без полей).