私は以下のPerlコードを持っていますが、その動作を理解できません。ハッシュではプラス記号は何を意味しますか?
use constant ANIMAL => 'rabbit';
if ($self->{+ANIMAL}) {
# Do something here
}
定数ANIMAL
前+
記号は何を意味するのでしょうか? perldoc constant
から
私は以下のPerlコードを持っていますが、その動作を理解できません。ハッシュではプラス記号は何を意味しますか?
use constant ANIMAL => 'rabbit';
if ($self->{+ANIMAL}) {
# Do something here
}
定数ANIMAL
前+
記号は何を意味するのでしょうか? perldoc constant
から
:
あなたが(任意のサブルーチンコールのために真であるとして)自動的に裸の単語を引用文脈で定数を使用する場合は、トラブルに巻き込まれることができます。たとえば、
CONSTANT
は文字列として解釈されるため、$hash{CONSTANT}
と言うことはできません。同様に、=>
オペレータは、すぐ左側にbarewordを引用しているので、の代わりにCONSTANT() => 'value'
(または単に大きな矢印の代わりにカンマを使用する)と言う必要があります。
'+'は単純にそのオペランドの値を生成する単項プラス演算子です。これは基本的にはノーオペレーションであり、ここで構文を調整するために使用されます。 –
Denis Ibaevの応答時にビル、B::Deparseコードがとして使用せずに解析される方法を示すことができ+
:
perl -MO=Deparse,-p script.pl
+
付:
use constant ('ANIMAL', 'rabbit');
if ($$self{+'rabbit'}) {
();
}
script.pl syntax OK
+
なし:
use constant ('ANIMAL', 'rabbit');
if ($$self{'ANIMAL'}) {
();
}
script.pl syntax OK
+
は、なしのベア語ANIMAL
が使用されているconstant
を使用して呼び出します。
「perlマップのプラス記号は何を意味しますか?」あなたのコードに 'map'は表示されません。 – ThisSuitIsBlackNot
@ThisSuitIsBlack誰かがハッシュを地図と呼ぶわけではないので、Nosrettapが意味するものかもしれません。 – asjo