周りで以外に知られていなかったので、次に別の人に聞かれた時用に書いとく。
知っている人は知っている、リストと配列では、スカラーコンテキストで評価した時の結果が違うという話。
$ perl -e "print scalar ('a', 'b', 'c');" c
と
$ perl -e "print scalar @{['a', 'b', 'c']};" 3
とか。 サブルーチンの return のところにリストを書いている時など注意。
#!/usr/bin/perl use warnings; use strict; use 5.10.0; sub primes_5_array { my @primes = (2, 3, 5, 7, 11); return @primes; } sub primes_5_list { return (2, 3, 5, 7, 11); } $, = ', '; say primes_5_array(10); say scalar primes_5_array(10); say primes_5_list(10); say scalar primes_5_list(10);
参考:
Naney (なにい) です。株式会社MIXIで SNS 事業の部長をしています。
※本サイトの内容は個人的見解であり所属組織とは関係ありません。