这是我的代码-
print $cpu_arch."\n";
if ($cpu_arch eq'AMD64') {
print "Remote machine is 64bit\n";
}
根据 CPU 架构,$cpu_arch 返回 x86 或 AMD64。问题是无论 $cpu_arch 返回什么,if 循环条件都没有得到满足。我试过 chomp'ing $cpu_arch 但这似乎也无济于事。
这是我的代码-
print $cpu_arch."\n";
if ($cpu_arch eq'AMD64') {
print "Remote machine is 64bit\n";
}
根据 CPU 架构,$cpu_arch 返回 x86 或 AMD64。问题是无论 $cpu_arch 返回什么,if 循环条件都没有得到满足。我试过 chomp'ing $cpu_arch 但这似乎也无济于事。
字符串的运算符eq
与您一样。您的问题不在于您的运营商,而在于数据。您很可能缓冲不正确(更改$|
变量)或者您$cpu_arch
有尾随空格。或者,也许您正在寻找正则表达式匹配而不是文字匹配(那么您想要/AMD64/
)
你的代码是正确的。要么$cpu_arch
不包含AMD64
,要么您误认为if
条件为假(可能是因为缓冲)。
以下内容可能会帮助您检查$cpu_arch
.
use Data::Dumper;
{
local $Data::Dumper::Useqq = 1;
print(Dumper($cpu_arch));
}