Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl 尝试启动Catalyst服务器时出错_Perl_Catalyst - Fatal编程技术网

Perl 尝试启动Catalyst服务器时出错

Perl 尝试启动Catalyst服务器时出错,perl,catalyst,Perl,Catalyst,运行Catalyst内部服务器(位于scripts/MyApp_server.pm),我收到以下错误。在这方面有人能帮我吗? 我没有更改catalyst.pl创建的任何文件。我只是运行了catalyst.pl MyApp,然后运行scripts/MyApp_server.pl-r来测试catalyst是否工作。这是我唯一做过的事! 我使用yum和cpan多次重新安装了Catalyst及其相关模块。但它不再起作用了 谢谢 错误消息: /usr/local/share/perl5/Catalyst.

运行Catalyst内部服务器(位于
scripts/MyApp_server.pm
),我收到以下错误。在这方面有人能帮我吗? 我没有更改catalyst.pl创建的任何文件。我只是运行了catalyst.pl MyApp,然后运行scripts/MyApp_server.pl-r来测试catalyst是否工作。这是我唯一做过的事! 我使用yum和cpan多次重新安装了Catalyst及其相关模块。但它不再起作用了

谢谢

错误消息:

/usr/local/share/perl5/Catalyst.pm中第2681行的代码如下:

lib/MyApp.pm的内容如下:

打包MyApp;
使用驼鹿;
使用namespace::autoclean;
使用Catalyst::Runtime 5.80;
#为应用程序设置标志并添加插件
#
#-调试:激活非常有用的日志消息的调试模式
#ConfigLoader:将从中的Config::General文件加载配置
#应用程序的主目录
#Static::Simple:将从应用程序的根目录提供静态文件
#目录
使用催化剂qw/
-调试
配置加载器
静态::简单
/;
推广"催化剂",;
我们的$VERSION='0.01';
$VERSION=eval$VERSION;
#配置应用程序。
#
#请注意,myapp.conf(或其他外部文件)中的设置
#您手动设置的配置文件)优先
#在使用ConfigLoader时,请跳过此选项。因此配置
#此处给出的详细信息可作为默认配置,
#使用外部配置文件作为
#本地部署。
__软件包->配置(
name=>“MyApp”,
#禁用旧应用程序所需的不推荐行为
禁用组件解析正则表达式回退=>1,
);
#启动应用程序
__软件包->设置();
=标题1名称
MyApp-基于Catalyst的应用程序
=总目1概要
脚本/myapp_server.pl
=标题1说明
[在此处输入您的描述]
=标题1另见
五十、 L
=第一作者
阿里·巴西拉特
=总目1许可证
这个图书馆是免费软件。您可以重新分发和/或修改它
它的术语与Perl本身相同。
=切割
1.

这不是一个确定的答案,但希望能有所帮助

您可能有一个未定义的
$class
$class->config
(更有可能),尽管我不能说。也许ConfigLoader没有工作

盲目地重新安装东西很少有帮助,问题可能是由于依赖项列表中的任何模块造成的。如果安装模块时出现特定问题,则可能会出现错误,我们可以解决该问题

所以-使用yum安装和-我不确定在Red Hat上调用了什么包,但应该很容易找到

好-现在在合适的地方创建一个新目录

mkdir /home/Devt/catalyst_test
cd /home/Devt/catalyst_test
eval $(perl -Mlocal::lib=./perllib)
echo $PERL5LIB
# You should see your current directory mentioned in PERL5LIB
cpanm Catalyst
cpanm Catalyst::Helper
catalyst.pl MyApp
cd MyApp/
perl Makefile.PL
./script/myapp_server.pl
# Opens up a server on port 3000
local::lib所做的是设置在本地安装所有东西的路径(在perllib中)——您可以通过在不使用eval的情况下运行它来查看它设置的环境变量

perl -Mlocal::lib=./perllib
有关如何将其添加到bash登录脚本的信息,请参阅文档。我只是将输出重定向到一个文件,并在处理一个项目时对其进行源代码转换(每个项目使用一个perllib)

然后,cpanm足够聪明,可以使用这个本地目录安装您需要的所有位

如果这不起作用,那么问题可能是由于您在/usr/local/中手动安装了一些东西造成的。在/usr/local/中备份各种与perl相关的lib dir,然后清除它们。再次运行cpanm(首先检查本地::lib路径是否已设置),并查看其下载的版本是否正常

上述方法应该有效——这正是我10分钟前所做的


整个想法是为这个项目创建一个单独的perl库安装—这样,如果您升级了任何东西,它只会影响当前的安装。

这不是一个明确的答案,但希望能有所帮助

您可能有一个未定义的
$class
$class->config
(更有可能),尽管我不能说。也许ConfigLoader没有工作

盲目地重新安装东西很少有帮助,问题可能是由于依赖项列表中的任何模块造成的。如果安装模块时出现特定问题,则可能会出现错误,我们可以解决该问题

所以-使用yum安装和-我不确定在Red Hat上调用了什么包,但应该很容易找到

好-现在在合适的地方创建一个新目录

mkdir /home/Devt/catalyst_test
cd /home/Devt/catalyst_test
eval $(perl -Mlocal::lib=./perllib)
echo $PERL5LIB
# You should see your current directory mentioned in PERL5LIB
cpanm Catalyst
cpanm Catalyst::Helper
catalyst.pl MyApp
cd MyApp/
perl Makefile.PL
./script/myapp_server.pl
# Opens up a server on port 3000
local::lib所做的是设置在本地安装所有东西的路径(在perllib中)——您可以通过在不使用eval的情况下运行它来查看它设置的环境变量

perl -Mlocal::lib=./perllib
有关如何将其添加到bash登录脚本的信息,请参阅文档。我只是将输出重定向到一个文件,并在处理一个项目时对其进行源代码转换(每个项目使用一个perllib)

然后,cpanm足够聪明,可以使用这个本地目录安装您需要的所有位

如果这不起作用,那么问题可能是由于您在/usr/local/中手动安装了一些东西造成的。在/usr/local/中备份各种与perl相关的lib dir,然后清除它们。再次运行cpanm(首先检查本地::lib路径是否已设置),并查看其下载的版本是否正常

上述方法应该有效——这正是我10分钟前所做的


整个想法是为这个项目创建一个单独安装的所有perl库——这样,如果您升级了任何东西,它只会影响当前的安装。

您可能需要在Catalyst.pm的第2681行附近发布几行代码,以便熟悉它的人可以提出建议。尝试从2670到2690的行,也许还有sub的名称。第2681行的代码如下:sub setup_home{my($class,$home)=@;if(my$env=Catalyst::Utils::env_value($class,'home')){$home=$env;}$home | Catalyst
perl -Mlocal::lib=./perllib