2017-08-24 17 views
-3

だから、私はこのコード行を理解することができません。誰かがそれを手伝ってくれれば偉大になるでしょう。私は私のプロジェクトの一部として地理位置パールスクリプトを作っています。ここで ステートメントが失敗した場合

はとても基本的に、私は文がJSONコードを読み取る場合は作成し、特定の名前が表示されている場合、それは特定のテキストを印刷しようとしています

$isps = $info->{'isp'}; 

if ($isps = "Time Warner Cable") 
{ 

    print "Isp found, go to $website for more information\n";  
} 

if ($isps = "Google") { 

    print "Isp found, go to $website for more information\n";  
} else { 

    print "No ISP located! No way of Contact via this terminal!"; 
} 

OKコードの行です。私はファイルにもっと多くのISPを追加していますが、今のところ例えば2つだけです。

私が真剣にそれを理解することができないので、誰もこのコード行で私を助けることができたら。

+2

問題_exactly_は何ですか? – litelite

+1

私はOPがある種の擬似コードを示していると思ったので、その理由でクローズしましたが、これは[Perlで2つの文字列を比較するにはどうすればいいですか?](https://stackoverflow.com/q/1175390/100754)、またはタイプミスです。誰かがまともなタイトルを見つけることができれば素晴らしいだろう。これはJSONとは関係ありませんが、まともな記述的なタイトルは考えられません。 –

+1

@SinanÜnür私はちょうど印刷上のエラーとして、再現可能ではない(など)閉じるに投票しました – zdim

答えて

5

=は代入演算子です。代わりに文字列比較演算子eqが必要です。

この行では、"Time Warner Cable"という文字列を$isps変数に割り当てています。次に、if - 条件は文字列を見て、trueと解釈します。次の条件でも同じです。

if ($isps = "Time Warner Cable") 

代わりに、あなたがしたい:

my $isps = $info->{'isp'}; 

if ($isps eq "Time Warner Cable") { 
    print "Isp found, go to $website for more information\n";  
} 
elsif ($isps eq "Google") { 
    print "Isp found, go to $website for more information\n";  
} else { 
    print "No ISP located! No way of Contact via this terminal!\n"; 
} 
+2

おそらく注目に値する - 'use strict;' '警告を使う;'これについてあなたに伝えます。 'Found = =条件付きで、==' – Sobrique

1

質問を更新して、現在のコードで何が問題になっているかを教えてください。

大きな問題の1つは、=が代入演算子です。

if ($isps eq "Time Warner Cable") # ... 

==オペレータが数値比較を行います。)詳しくは、perldoc perlopについては

hereオンラインで利用可能:平等のための文字列を比較するには、eq演算子を使用します。

+0

うわー、私は気が気になりません。 Kindaはperl自体を知っていました。私はそれが簡単だろうと気付かなかった。どうもありがとうございます!病気は私の間違いから学ぶ。 – Roto

関連する問題