通过命令提示符执行Perl子例程?

时间:2014-05-05 16:24:36

标签: perl cmd subroutine

我有一个带有多个子例程的perl(.pm)文件。我想执行一个子例程,它接受一个参数作为参数。我试过了

perl /full_file_path/file_name.pm mySubRoutine myArgument

但没有回复。什么是正确的格式?

1 个答案:

答案 0 :(得分:2)

如果您的Perl模块位于@INC目录列表之一,那么您可以编写

perl -Mfile_name -e 'mySubRoutine(myArgument)'

如果它在其他地方那么你需要添加路径,比如

perl -M/full_file_path/file_name -e 'mySubRoutine(myArgument)'

并且,正如ysth指出的那样,如果模块文件在开始时有package MyPackage,那么您可能需要将其添加到您的通话中,例如

perl -M/full_file_path/file_name -e 'MyPackage::mySubRoutine(myArgument)'

但是在这种情况下,文件应该被称为MyPackage.pm,实际命令看起来如下所示(注意与.pm参数一起使用时,文件名中没有附加-M

perl -M/full_file_path/MyPackage -e 'MyPackage::mySubRoutine(myArgument)'