Wenn ich "$ module-> Prune ('PPI :: Token :: Whitespace');" und speichern Sie die Ergebnisse in $ Datei gibt es einen einfachen Weg zurück zu funktionierenden Code für den gespeicherten Code? Ich habe versucht "Perl :: Tidy" und es sieht viel besser danach aber ID nicht alle beheben.PPI - Prune PPI :: Token :: Whitespace - Frage
#!/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 $!;
edit:
Ich bin nicht mehr in der Lage meinen Code zu rekonstruieren, die ich in erster Linie hatte. Mit Prune-Leerzeichen aktiviert ich so etwas wie dieses
$a = $module->find(sub {
$_[1]->isa('PPI::Statement') and
$_[1]->content eq q(if([email protected]){$have_Term_ReadKey=0;$have_Term_Size=1;eval'require "Term/Size.pm"';if([email protected]){$have_Term_Size=0;}})
});
statt
$a = $module->find(sub {
$_[1]->isa('PPI::Statement') and
$_[1]->schild(0)->content eq q(if) and
$_[1]->schild(1)->isa('PPI::Something') and
...
...
});
verwenden könnte um einen Punkt zu finden, um etwas anhängen. Aber nach dem erneuten Versuch weiß ich, dass es nicht funktionieren kann (abgesehen davon, dass ich den Code nicht ohne Leerzeichen wiederherstellen kann).
könnten Sie einige Beispiele vor und nach dem Code posten, einschließlich wo Sie Änderungen wünschen, aber nicht bekommen? –