String 如何在Perl中比较字母数字值?
这是我的密码-String 如何在Perl中比较字母数字值?,string,perl,comparison,alphanumeric,String,Perl,Comparison,Alphanumeric,这是我的密码- print $cpu_arch."\n"; if ($cpu_arch eq'AMD64') { print "Remote machine is 64bit\n"; } 根据CPU体系结构,$CPU_arch返回x86或AMD64。 问题是,无论$cpu_arch返回什么,if循环条件都没有得到满足。我试着吃了$cpu拱门,但似乎也没用 您的代码是正确的。$cpu\u arch不包含AMD64,或者您错误地认为if条件为false(可能是因为缓冲) 以
print $cpu_arch."\n";
if ($cpu_arch eq'AMD64') {
print "Remote machine is 64bit\n";
}
根据CPU体系结构,$CPU_arch返回x86或AMD64。
问题是,无论$cpu_arch返回什么,if循环条件都没有得到满足。我试着吃了$cpu拱门,但似乎也没用 您的代码是正确的。
$cpu\u arch
不包含AMD64
,或者您错误地认为if
条件为false(可能是因为缓冲)
以下内容可能有助于您检查$cpu\u arch
use Data::Dumper;
{
local $Data::Dumper::Useqq = 1;
print(Dumper($cpu_arch));
}
你的代码是正确的。
$cpu\u arch
不包含AMD64
,或者您错误地认为if
条件为false(可能是因为缓冲)
以下内容可能有助于您检查$cpu\u arch
use Data::Dumper;
{
local $Data::Dumper::Useqq = 1;
print(Dumper($cpu_arch));
}
字符串的运算符是
eq
。您的问题不在于操作员,而在于数据。很可能是缓冲不正确(更改$|
变量)或$cpu\u arch
有尾随空格。或者您可能正在寻找正则表达式匹配而不是文本匹配(然后您需要/AMD64/
)字符串的运算符是eq
。您的问题不在于操作员,而在于数据。很可能是缓冲不正确(更改$|
变量)或$cpu\u arch
有尾随空格。或者您正在寻找正则表达式匹配而不是文本匹配(然后您想要/AMD64/
)您是否尝试过双引号,如“AMD64”?还有,你确定没有额外的空格吗?正则表达式比较可能更容易。您是否尝试过双引号,如“AMD64”?还有,你确定没有额外的空格吗?正则表达式比较可能更容易。谢谢!正则表达式工作得很好。正如您所提到的,缓冲可能有问题。正则表达式的工作表明这不是缓冲问题,而是一个尾随空格问题。当您说“缓冲不正确”时,您到底在说什么?这可能是不好的措辞。我的意思是,STDOUT没有刷新,所以看起来好像什么都没有打印,而实际上它是,但你的终端没有显示它。谢谢!正则表达式工作得很好。正如您所提到的,缓冲可能有问题。正则表达式的工作表明这不是缓冲问题,而是一个尾随空格问题。当您说“缓冲不正确”时,您到底在说什么?这可能是不好的措辞。我的意思是,STDOUT没有刷新,所以看起来好像什么都没有打印,而实际上它是,但您的终端没有显示它。