2010-01-27

Perl における配列を返す式の n 番目の要素を表す記法

例えば今,配列を返す関数があるとする.

sub f {
    (1, 2, 3);
}

f() の返り値の n 番目の要素を得るには次のようにすればよい.

@a = f();
print $a[$n];

この時,一時変数 @a を使わないようにするにはどうすればよいだろうか?

以下のようにすればうまくいくが不自然だ.

print [f()]->[$n];

あるいは,

print ${[f()]}[$n];

ともできるが,いずれにせよ不自然.

もっと素直な記法は無いのか?

勘違い (2010/7/2 追記)

上のような変なことをしなくても,

(f())[$n]

でよい.ただし,

print (f())[$n];

は print 関数と括弧の関係上文法エラーになるので,

print ((f())[$n]);

とする必要がある.上の print がうまくいかなかったので勘違いしていた .

http://d.hatena.ne.jp/metalglue/20090614/1244971305 も参考にせよ.

0 件のコメント:

コメントを投稿