scalar関数 - スカラコンテキストで評価



  1. Perl




  2. 関数



  3. here

scalar関数を使用すると、スカラコンテキストを強制することができます。

# スカラコンテキストで評価
scalar 実行文

たとえば配列をスカラコンテキストで評価すると配列の個数が取り出せますが、scalar関数を使って明示的に書くと以下のようになります。

# 配列の個数
my $count = scalar @values;
scalar関数は使わなくってよい?

プログラムを工夫して書けばscalar関数を使わないでプログラムを書くことができます。

たとえば、サブルーチンの引数に値を渡す場合は、変数を経由して渡すようにします。

# 配列の個数を直接渡す
foo(scalar @values);

# 配列の個数をスカラ変数に保存してから渡す
my $count = @values;
foo($count);

変数名を上手につけると自己説明的になって、プログラムが読みやすくなります。多くの場合は、scalar関数を使うよりは、変数に一度代入してから、他の場所で使うのがお勧めです。



  1. Perl




  2. 関数



  3. here