Perl nach Python portieren [geschlossen]

9

Ich frage mich, ob es irgendwelche Tipps oder Tricks zum Konvertieren von Perl in Python gibt. Es wäre schön, wenn es ein Skript wie Pythons 2to3 gäbe. Oder vielleicht einige Kompatibilitätsbibliotheken. Es muss nicht vollständig sein, irgendetwas, um den Prozess zu beschleunigen, wäre hilfreich.

    
rook 08.04.2010, 02:44
quelle

6 Antworten

17

Halten Sie einen Sprachführer bereit, während Sie den Code durchgehen, den Sie portieren möchten.

    
mob 08.04.2010, 03:59
quelle
6

Es gibt so viele Möglichkeiten, dasselbe in Perl zu machen, dass das Schreiben von Crosscomputern im besten Fall ... schmerzhaft wäre. Rekonstruieren ( nicht einfach übersetzen) das Programm manuell.

    
Ignacio Vazquez-Abrams 08.04.2010 02:49
quelle
5

Das beste "Werkzeug", um Perl in Python zu konvertieren, ist immer noch du selbst :). Lerne die Syntax von Python und wie es funktioniert aus Python-Dokumenten . Führen Sie die Konvertierung dann manuell durch. Zum Beispiel verwendet Perl sehr viel Regex. In Python ist die String-Manipulation jedoch so einfach, dass Regex meistens nicht benötigt wird. Wie würde ein Konverter dies vorher wissen? Es gibt auch viele Möglichkeiten, Dinge in Perl zu tun. Wie würde also ein Konverter wissen, was mit Python-Äquivalenten am besten ist? Daher ist manuelle Konvertierung immer noch der beste Weg zu gehen

Wenn Sie interessiert sind, können Sie sich dieses Buch ansehen Auch von Interesse, Pleac

    
ghostdog74 08.04.2010 02:48
quelle
5

Leider bin ich in die gleiche Gurke gelaufen, es scheint keinen direkten Weg zu geben. Aber wenn du so versiert bist wie ich bin, könntest du schnell eine Liste wie diese hier finden.

Geben Sie einfach all dies in eine Datei namens (oder etwas anderes) 'ersetzen' ein und öffnen Sie das Perl-Skript (sichern Sie zuerst Ihr ursprüngliches Skript) und tun Sie: source path / to / the / substitute. Bitte beachten Sie, dies ist keineswegs perfekt, aber könnte Ihnen eine gute Richtung des Starts geben (hoffentlich!)

%Vor%     
vHalaharvi 30.01.2013 22:21
quelle
3

Ein anderer Ansatz besteht darin, dass Sie möglicherweise vorhandenen Perl-Code wiederverwenden und mit neuem Python-Code ergänzen können.

Eine Möglichkeit, die für Sie funktionieren könnte, ist die Verwendung des perl Python-Moduls , mit dem Sie Perl-Code in Python ausführen können.

Ein anderer Ansatz besteht darin, dass Perl seine Ausgabe als einfache Text / JSON / YAML-Dateien erzeugt, die von Python zur weiteren Verarbeitung analysiert werden. So konnte ich meinen alten Perl-Code verwenden, ohne ihn neu schreiben zu müssen, während ich zu Python wechselte. Ihre Laufleistung kann variieren, da diese "Klebe" -Methode für Ihre Anforderungen möglicherweise zu langsam ist. Diese "pass files" -Methode ist gut, wenn Sie lange Berechnungen haben, die Zwischenergebnisse erzeugen: Sie können die Berechnung in Perl starten und in Python fortsetzen.

    
EOL 08.04.2010 07:47
quelle
2

Das Konvertieren würde das Schreiben eines Perl-Parsers, eines semantischen Checkers und eines Python-Code-Generators erfordern.

Nicht praktisch. Perl-Parser sind hart genug für die Perl-Teams, um richtig zu machen. Sie wären besser dran, Perl von der Perl-AST (Opcodes) in Python zu übersetzen, indem Sie den Perl-Opcode oder verwandte Module verwenden.

Ссылка

Einige Notationen werden nicht ohne Probleme von Perl zu Python gemappt. Perl's Verschlüsse sind zum Beispiel verschieden. So ist seine Regex-Unterstützung.

Kurz gesagt, wandeln Sie es entweder von Hand um oder verwenden Sie einige Integrationsmodule, um Python von Perl oder umgekehrt aufzurufen.

    
codenheim 08.04.2010 02:59
quelle

Tags und Links