
普通は戻り値を1つだけ返すか戻り値を返さないものが多いですが、Perlでは複数の関数からリストを返して受け取り側に多重代入で使うことができます。もちろん配列を戻り値にとして返すこともできますが、いろいろな問題点があります。
そこで、配列やHashの変数を取るためにReferenceというものが必要です。Referenceは変数の値を取るというより、変数メモリ上に存在してる「Memory Address」を取ります。そこのメリットは下記のように述べます。
サブルーチンに渡す引数に複数の配列やHashを指定することが可能になる サブルーチンの戻り値として、変数の値を渡すよりも、変数のリファレンスを渡すほうが高速 2次元配列などの複雑なデータ構造を作成できる 今回のコードも直接に配列を取るというよりReferenceで取ることを忘れないようにします。また必要するなら、return wantarray ? @users : \@users;のような返す方法で配列を取ります。
wantarrayとは、実行中のサブルーチンの戻り値として、リストが要求されている場合に真を返し、スカラーが要求されている場合には偽を返します。
0 留言:
發佈留言