7

私は常に@_[0]最初のパラメーター@_[1]を取得し、2 番目のパラメーターを取得するために使用します。しかし、オンラインでコード スニペットを検索すると、多くの人がこのshiftキーワードを好んで使用していることがわかります。shiftキーワードが直感的であるとはまったく思いません。これら2つの間に機能的な違いはありますか?

4

2 に答える 2

14

はい、2つの間に違いがあります。 shift変更するか@_ (これはシフトを遅くする操作であると主張できます) $_[0]、または$_[1]単なる割り当てであり、まったく変更されません@_

これを書く美的方法は次のとおりです。

sub this_is_better {
    my ( $foo, $bar, $hey, $whoa, $doll, $bugs ) = @_;
}
于 2012-09-27T18:19:46.127 に答える
0

ドキュメントに記載されているように、明示的な配列を使用せずに、引数を最初から削除し、残りの要素を先頭に移動することで、サブルーチン内shiftの次のパラメーターをローカルで取得します。@_

于 2012-09-27T18:18:43.650 に答える