我已经完成了将 Perl脚本转换为Python 的任务。
我真的是Perl的新手,并且在遇到命令行选项-Sx
时了解了Perl。
Perl中为这些参数提供了很好的文档。但是在python中并没有太多的文档(在Python官方站点中找不到很多信息)。
我的问题是 Perl 和 Python 的那些命令行选项-Sx
是否相同?
他们在两者中都完成相同的任务吗?
答案 0 :(得分:1)
我在评论中提出的问题:
您是否考虑过您所要求的外壳对于您的工作是否真的必要?还是您只是在盲目翻译而不了解正在做什么?
我很确定答案分别是“否”和“是”。当您尝试将代码从一种语言翻译为另一种语言时,这不是一个好地方。您应该了解正在做什么,并且使您的新版本以最适合新语言的任何方式进行相同的操作,而不会陷入盲目领先的境地货物邪教代码,您不知道正在发生什么,或者在它始终无法正常工作时如何解决它。
如果您以前从未见过像other question这样的源程序,那么您尝试翻译的源程序就会使您感到困惑。
您有一个Shell脚本,它唯一要做的就是使用一个源代码直接嵌入到Shell脚本中的程序在perl中运行。这样做的原因是要根据环境在同一台计算机上的不同perl安装下运行真实脚本(我个人将perl代码放在其自己的单独文件中,而不是尝试将其直接放在智能文件中。 shell脚本; perlbrew documentation示例采用了这种方法)。那是您需要关注python版本的东西吗?我猜可能不是(如果是的话,请研究使用pythonic的方法来做到这一点,而不是掩盖消失的方法)。这意味着另一个问题的答案
您确定甚至-
和-x 需要吗?
不,我不认为你这样做。我认为您应该只将其保留为纯python,使这些选项无关紧要。
答案 1 :(得分:0)
以下代码段用于支持早于python
存在的古代系统:
#!/bin/sh
exec perl -Sx $0 ${1+"$@"}
if 0;
现在,it appears您正在使用的是经过混编和修改的版本,但是使用它已无济于事。如果呼叫者想使用特定的perl
,则应使用"$PERL" script
而不是依靠script
来使用$PERL
。
因此,您应该对Perl脚本使用以下内容:
#!/usr/bin/env perl
或
#!/path/to/the/installing/perl
因此,您应该对Python脚本使用以下内容:
#!/usr/bin/env python
或
#!/path/to/the/installing/python