nDiki

2013年8月21日 (水)

Perl でスカラーコンテキストでリストを評価すると。

周りで以外に知られていなかったので、次に別の人に聞かれた時用に書いとく。

知っている人は知っている、リストと配列では、スカラーコンテキストで評価した時の結果が違うという話。

 $ 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);

参考:

  • perldoc perldata の List value constructors
  • perldoc -f scalar
スポンサード リンク
[ 8月21日全て ]

About Me

Naney Naney (なにい)です。株式会社ミクシィで SNS 事業の部長をしています。

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。

※内容は個人的見解であり所属組織とは関係ありません。

follow us in feedly

月別インデックス
Process Time: 0.157516s / load averages: 0.39, 0.37, 0.39
nDiki by WATANABE Yoshimasa (Naney, Google profile)
Powered by DiKicker