1

これが私のコードです-

print $cpu_arch."\n";  
if ($cpu_arch eq'AMD64') {      
    print "Remote machine is 64bit\n";
}

CPU アーキテクチャに応じて、$cpu_arch は x86 または AMD64 を返します。問題は、$cpu_arch が何を返しても、if ループ条件が満たされないことです。$cpu_arch をむさぼり食ってみましたが、それも役に立たないようです。

4

2 に答える 2

4

文字列の演算子はeqあなたが持っている通りです。あなたの問題はあなたのオペレーターではなく、データにあります。おそらく、バッファリングが不適切である($|変数を変更する)か、$cpu_arch末尾に空白があります。または、リテラル一致ではなく正規表現一致を探している可能性があります(次に必要です/AMD64/

于 2011-11-07T04:16:09.010 に答える
1

あなたのコードは正しいです。$cpu_archが含まれていないかAMD64if条件がfalseであると誤解されています(おそらくバッファリングが原因です)。

以下はあなたが調べるのを助けるかもしれません$cpu_arch

use Data::Dumper;

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