这是我的代码-
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));
}