每次我构建Catalyst应用程序时,都会出现该应用程序启动(重新)启动非常缓慢的情况,延迟约为10秒。今天我发现延迟是由以下几行引起的:
use lib '/home/zoul/opt/lib/perl/5.8';
use lib '/home/zoul/opt/share/perl/5.8';
use lib '/home/zoul/opt/lib/perl/5.8.8';
use lib '/home/zoul/opt/share/perl/5.8.8';
这些行仅在服务器上需要,因为我没有root访问权限,并且我的Perl模块安装在
~/opt
下。 (我不能使用Apache的SetEnv
模块,因为托管人不支持它。因此,我必须将库路径输入到App.pm
中。)在出现延迟的开发机器上,该路径不存在。我的问题:(1)为什么线路会造成这么多的延迟,大约7秒钟? (2)解决这个问题的好方法是什么?天真的条件
use
不起作用:if ($on_the_hosting_machine)
{
use lib '…';
}
我想我可以以某种方式
eval
,还是有更好的方法? 最佳答案
我不执行Catalyst
,所以我不确定这是否能解决您的问题,但是您可以尝试执行lib.pm
的本质作用:
BEGIN {
if ( $on_the_hosting_machine ) {
unshift @INC, qw'
/home/zoul/opt/lib/perl/5.8
/home/zoul/opt/share/perl/5.8
/home/zoul/opt/lib/perl/5.8.8
/home/zoul/opt/share/perl/5.8.8
';
}
};
关于perl - 为什么我的Catalyst应用程序重新启动缓慢?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1295222/