は、Perlサブルーチンが配列を返すと言う:私は、このことから、特定の配列要素にアクセスする最初のを言うPerlサブルーチンによって返された要素に選択的にアクセスするにはどうすればよいですか?
sub arrayoutput
{
...some code...
return @somearray;
}
。だから私はできます:
@temparray=arrayoutput(argument);
そして次に$temparray[0]
を参照してください。
しかし、この種の短い参照は機能しません:$arrayoutput(some argument)[0]
。
私はPythonに慣れていてPerlには慣れているので、この値を得るには、短く直感的なpython風の方法(a=arrayoutput(some argument)[0]
)を探しています。私のPerlプログラムは非常に長くなり、そのような一時的な配列を使用すると醜いようです。 Perlにこれを行う方法はありますか?
+1、これは動作します。しかし、再び値にアクセスするために中間変数を作成する必要があります。しかし、これは一歩進んでいます。なぜなら、とにかく変数の割り当てが必要なときには、少なくともそれを使うことができるからです。しかし、他のシナリオでは、 'print(foo())[3]'ステートメントや 'if((foo())[3] ...)'ステートメントは言いません。 –
あなたはその両方を行うことができます。私の更新された回答を見てください。 – toolic
'print(foo())[7]'は期待通りに動作しません。なぜなら、perlはカッコが関数呼び出しに属していると仮定して '(print foo())[7] '。しかし、 'print((foo())[7])'やもっとイディオム的に 'print +(foo())[7]'のどちらかが機能します。 –