我是Perl的初学者,我正在努力构建构建Perl程序的最佳方法.我精通Python,我习惯于from foo import bar从python模块导入函数和类的python 方式.正如我在Perl中所理解的那样,有很多方法可以做到这一点,.pm和.pl模块,EXPORT和@ISAs,使用和要求等等.初学者不容易弄清楚哪些是差异,每个的优点和缺点(甚至在阅读Beginning Perl和Intermediate Perl之后).
问题所在,我目前的问题与以下句子有关perldoc perlmod:
Perl模块文件的扩展名为.pm.该
use运营商承担这个,所以你不必拼出"Module.pm"加引号.这也有助于将新模块与旧的.pl和.ph文件区分开来.
旧的 .pl准备模块的方式与新的 .pm方式有什么区别?
它们真的是古老而现代的方式吗?(我认为它们是因为Perlmod说的,但我想得到一些关于此的意见).
我正在尝试在我的主机服务器(iPage)上设置Perl类.但是他们的配置只识别带有.cgi或.pl文件标签的Perl文件.是否可以在不使用.pm标记的情况下设置Perl类?
我是新手Perl.对不起我的愚蠢问题.
我有一些像这样的代码:
bintest.pl
subfolder/sample.pl
Run Code Online (Sandbox Code Playgroud)
在其中sample.pl,有些定义如下:
#!/usr/bin/perl
use lib '.';
use lib '..';
use bintest qw(:DEFAULT
$client_routine
);
Run Code Online (Sandbox Code Playgroud)
但是,当我使用perl sample.pl时subfolder,我收到了这个错误:
Can't locate bintest.pm in @INC (@INC contains: .. . /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl) at sample.pl line 6.
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?谁能给我一些帮助?