【发布时间】:2011-03-29 02:31:21
【问题描述】:
有人发现这段代码有什么问题吗?当我们(在 Linux 上)执行它时,我们会直接进入“错误:未知主机”块。
Perl 是 5.8.6 版
$hostname = "host2";
if ($hostname eq "host1") {
$dbhost = 'dbi:Oracle:dbhost1';
}
elsif ($hostname eq "host2") {
$dbhost = 'dbi:Oracle:dbhost2';
}
elsif ($hostname eq "host3" || $hostname eq "host4") {
$dbhost = 'dbi:Oracle:dbhost3';
}
else {
print "ERROR: UNKNOWN HOST\n";
die "Can't connect";
}
【问题讨论】:
-
对我来说看起来不错,并且在 5.8.9 上运行良好。你使用的是哪个版本的 perl?
-
在“这是为 x86_64-linux-gnu-thread-multi 构建的 perl,v5.10.1 (*)”(Ubuntu 10.04.1 LTS)下为我工作。你的确切主机是什么,perl 版本,这是完整的代码吗?
-
您确定在您的生产代码中定义了
$hostname吗?你在使用use warnings; use strict;吗? -
你确定
$hostname没有多余的空格吗? -
您是否已将 $hostname var 中的所有不可见字符剥离?
标签: perl string flow-control