Было бы неплохо, если бы существовала программа, которая автоматически преобразует код Perl в код Python, делая результирующую программу Python такой же читаемой и поддерживаемой, как исходная, не говоря уже о том, чтобы работать так же.
Наиболее очевидное решение - просто вызвать perl
через утилиты Python:
#!/usr/bin/python
os.exec("tail -n -2 "+__file__+" | perl -")
...the rest of file is the original perl program...
Однако результирующий код вряд ли является кодом Python, это, по сути, код Perl. Потенциальный конвертер должен преобразовывать конструкции и идиомы Perl в легко читаемый код Python, он должен сохранять имена переменных и подпрограмм (т.е. результат не должен выглядеть запутанным) и не должен слишком сильно разрушать поток wrokflow.
Такое преобразование, очевидно, очень сложно. Твердость преобразования зависит от количества возможностей Perl и синтаксических конструкций, которые не имеют легко читаемых, неоспоримых эквивалентов Python. Я считаю, что большое количество таких функций делает такое автоматическое преобразование невозможным практически (в то время как существует теоретическая возможность).
Итак, не могли бы вы назвать идиомы и синтаксические возможности Perl, которые не могут быть выражены в Python, такими же краткими, как в исходном коде Perl?
Редактировать : некоторые люди связывали инициаторы Python-to-Perl и на этой основе выводили, что также должно быть легко писать Perl-to-Python. Тем не менее, я уверен, что преобразование в Python требует большего спроса; до сих пор этот конвертер еще не написан - пока обратное уже было! Что только укрепляет мою уверенность в невозможности написания хорошего конвертера для Python.