我有一个带有多个子例程的perl(.pm)文件。我想执行一个子例程,它接受一个参数作为参数。我试过了
perl /full_file_path/file_name.pm mySubRoutine myArgument
但没有回复。什么是正确的格式?
答案 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)'