- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在尝试运行 NERVE 一个由 Perl 脚本组成的疫苗开发程序,但无法使其正常运行。我已经下载并安装了所有先决条件,但每次到达代码的 mysql 步骤时,它都会崩溃,并显示一条错误消息:无法通过包“Mysql”找到对象方法“connect”(也许您忘记加载“Mysql"?) 在 ./NERVE 第 340 行第 5 行。我查看了代码并将“use mysql”更改为“use DBI”和“use DBD:mysql”,但随后出现错误: Can't use字符串(“”)作为哈希引用,而“严格引用”在/usr/local/lib/perl/5.14.2/DBI.pm 第 604 行第 5 行使用。
如果有人可以查看 mysql 部分的代码并就如何修复它提供建议,以便我可以正确运行程序,我将不胜感激。我尝试向开发人员发送电子邮件,但没有回复,所以我希望你们能帮助我。
下面是 NERVE 的 mysql 部分的 perl 代码。
use mysql;
$db=Mysql->connect("$host","$database","$user","$password");
if(!$db || (!$host || !$database || !$user || !$password)){
print "\nAttention: mysql connection parameters are missing or not correct!\n";
print "I need you to specify: host, database, user, password;\n";
print "You can do it now typing them right in that order and separeted only by comma;\n";
print "For example:localhost,Pathogens,sandro,xvzhs\n";
print "So, your Mysql connection settings are (type q to quit):";
while (!($db && $mysql =~ /,/) & $mysql ne "q"){
chomp($mysql = <STDIN>);
die "Ok,let's quit this work! Call me when your mind is clearer about Mysql parameters! Bye :-)\n" if $mysql eq "q";
($host,$database,$user,$password) = split (',',$mysql);
$db=Mysql->connect("$host","$database","$user","$password");
last if($db && $mysql =~ /,/);
print "\nMysql connection settings still not correct!\n";
print "Remember: host, database, user, password, separeted only by comma.\n";
print "For example:localhost,Pathogens,sandro,xvzhs\n";
print "Please, try again:";
}
print "Ok, Mysql connection to \"$database\" database was successful!\n";
}
最佳答案
错误信息是正确的。您正在尝试使用名为 的模块,但从未加载它。改变
use mysql;
至
use Mysql;
使用该模块。在评论中,您提到结果是
Can't locate Mysql.pm in @INC
除非您有理由相信该模块已安装,否则表明需要安装它[1]
该模块曾经是 DBD-mysql 发行版的一部分,但它已经过时了。它太古老了,几年前就从 DBD 中删除了。要获取它,您需要将 DBD-mysql 发行版降级到版本 3.0008 .
这是一件非常糟糕的事情。该脚本应该使用 DBI。
<小时/>cjm积分
since the Mysql.pm in 3.0008 is just a compatibility layer using DBI under the hood, you should be able to install Mysql.pm & Mysql/Statement.pm from that old dist along with a current DBD-mysql.
因此,如果您从上面链接的发行版中提取 Mysql.pm
作为 /usr/lib/perl5/Mysql.pm
和 Mysql/Statement.pm
如/usr/lib/perl5/Mysql/Statement.pm
,您应该有一个简单无痛的解决方案。
在较新版本的 Perl 中,错误消息已得到改进。现在内容如下:
Can't locate Mysql.pm in @INC (you may need to install the Mysql module)
关于mysql - 有关 mysql 的 Perl 问题 :Can't locate object method "connect" and Can't use string ("") as a HASH,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27931868/
我是一名优秀的程序员,十分优秀!