Ich bin neu in Perl und bin gerade damit beschäftigt, ein großes und ziemlich unordentliches Perl-Projekt aufzuräumen und zu warten. Ich benutze Perl-Kritiker, um mir zu helfen, Probleme im Code zu erkennen (und mir auch Best Practices beizubringen).Wie erkennt man nicht erreichbaren Code in Perl-Bedingung, die immer als falsch auswertet?
Der vorhandene Code enthält Stellen, an denen der Coder nicht erreichbaren Code erstellt hat. So fügten sie ‚& & 0‘ als faule Art der Kommentierung einige der Code verzweigt:
if ($req->param('donut') && 0) {
unreachable code...
} else {
always branches to here...
}
ich gehofft hatte, dass Perl oder Kritiker würde mich über nicht erreichbare Code in solchen Fällen warnen (wo ein conditional hat einen konstanten Wert, der zu false auswertet), tut es aber nicht.
Gibt es ein Werkzeug oder ein Stück Skript, das ich verwenden könnte, das solche Dinge zuverlässig erkennen kann?
Offensichtlich konnte ich für ‚& & 0‘ in der Quelle suchen, aber es gibt eine Reihe von Möglichkeiten, wie die Codierer nicht erreichbar Code erstellt haben, könnten neben anfügen von ‚& & 0‘ zu einer if-Anweisung.
+1 für die Information über B :: Deparse.Obwohl mir die Nebenwirkung des ersten Teils des Konditionals klar war (was bedeutet, dass der Bedingungsausdruck selbst nicht kompiliert werden kann), war mir nicht bewusst, dass der Kontext, der durch den zweiten Teil des Konditionals eingeführt wurde, geändert wurde . –