:カンマで区切られた操作はどのようにしてperlで動作しますか?
return bless { }, $type;
私はreturn bless { };
はどうなるのか知っている、と私は声明に影響を与えるもreturn $type;
はどうなるのかを知っているが、どのようにカンマで区切っありませんすべての単項演算子で同じように動作しますか?
:カンマで区切られた操作はどのようにしてperlで動作しますか?
return bless { }, $type;
私はreturn bless { };
はどうなるのか知っている、と私は声明に影響を与えるもreturn $type;
はどうなるのかを知っているが、どのようにカンマで区切っありませんすべての単項演算子で同じように動作しますか?
blessは単項演算子ではないので、$type
はbless
に渡されます(ここで、ハッシュリファレンスを祝福するクラスの名前として使用されます)。 returnに関する特別
唯一のものは
。その右側の式はリスト、スカラー、またはサブルーチンが呼ばれた文脈に応じて、無効コンテキストで評価されるかもしれないということであるcomma operatorはいずれも解釈されませんreturn
ステートメントでは、他の場所にあるステートメントとは異なります(ただし、return
ステートメントを参照することで、リストまたはスカラーコンテキストにあるかどうかはわかりません)。
事前定義されたPerl関数は、かっこ付きでもなくても呼び出すことができます。他の言語を使用している人の大部分は、キーワード/演算子のためにこれらの機能を混乱させます。
bless、undef、push、pop、shift、unshift、print、split、joinなどはすべて関数です。
したがって、これら二つは等価です:
return bless { }, $type;
return bless({ }, $type);
しかし、これら二つはありません: `、REFを祝福CLASSNAME`と` REF`を祝福:
print 2 * 3 + 2; # prints 8
print(2 * 3) + 2; # prints 6 (with a warning if warnings pragma is on)
*宣言* Perl関数は、かっこ付きでもなくても呼び出すことができます。ビルトインはこの点で特別ではありません。 –
あなたは正しいです、サブa {}; a 1,2;作品は1、2; sub a {}はそうではありません。 –
は二つの変種があり祝福。示されている表記は 'return bless(REF、CLASSNAME);と同じです。 –