1

这是我的代码-

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 但这似乎也无济于事。

4

2 回答 2

4

字符串的运算符eq与您一样。您的问题不在于您的运营商,而在于数据。您很可能缓冲不正确(更改$|变量)或者您$cpu_arch有尾随空格。或者,也许您正在寻找正则表达式匹配而不是文字匹配(那么您想要/AMD64/

于 2011-11-07T04:16:09.010 回答
1

你的代码是正确的。要么$cpu_arch不包含AMD64,要么您误认为if条件为假(可能是因为缓冲)。

以下内容可能会帮助您检查$cpu_arch.

use Data::Dumper;

{
   local $Data::Dumper::Useqq = 1;
   print(Dumper($cpu_arch));
}
于 2011-11-07T04:14:48.140 回答