我正在编写Perl代码并使用扩展名为.pm
的文件中的DBI
模块。
导入DBI
模块时,我收到类似
syntax error at /etc/perl/Foo.pm line 13, near "DBI:"
Compilation failed in require at join.pl
在join.pl
文件中,我们将模块Foo.pm
称为
use Foo;
Foo::dbconnect();
并且Foo.pm
中的代码就像这样
#!/usr/bin/perl
package Foo;
use DBI;
sub dbconnect {
my $database = "DB_NAME";
my $user ="user_name";
my $password = "password";
my $dsn = "dbi:mysql:$database:localhost:3306";
my $connect = DBI:connect->($dsn, $user, $password)
or die "can't connect to the db $DBI::errstr\n";
return $connect;
}
1;
我收到了
行中的错误my $connect = DBI:connect->($dsn, $user, $password)
or die "can't connect to the db $DBI::errstr\n";
请帮我解决这个问题。
答案 0 :(得分:3)
欢迎来到SO。
首先,您应始终use strict
和use warnings
来帮助查找代码中的问题。
connect
行中存在语法错误。试试这个:
my $connect = DBI->connect($dsn, $user, $password)
or die "can't connect to the db $DBI::errstr\n";
建议:在变量代表之后命名变量是个好主意。我建议{em>数据库句柄而不是$dbh
$connect
,但这当然取决于偏好。
答案 1 :(得分:3)
您用于connect
方法DBI:connect->(...)
的语法错误。
如果您使用两个冒号而不是一个冒号并删除了箭头,那将是有效的语法,但它仍然不起作用。
你需要的是一个类方法调用,比如这个
my $connect = DBI->connect($dsn, $user, $password)
or die "can't connect to the db: $DBI::errstr\n";