引数の書き方いろいろ

現代的なPerlの記述方法一覧 + αは良くまとまっていておすすめです。

私はPerl4の頃から書いていたのでPerlで書くでは古い書き方も結構残っているのですよね。

自作の掲示板なんて未だにmyではなくてlocalが使われていたりして、今では絶対に書かないような書き方をしています。

それはさておき、自分と違ったのがこれ。

# 引数がひとつの場合
sub func {
    my $file = shift;
}
# 引数が複数の場合
sub func {
    my ($file, $option) = @_;
}

私はこう書いています。

sub func {
    my $foo = shift; # 引数の説明
    my $bar = shift; # 引数の説明
}

引数が複数でもshiftを使います。理由は引数の説明のコメントが書きやすいから。といいつつも、コメントを書くのをサボることも多々ありますが。

逆の方もいました。サブルーチンの引数の受け方の方は次のようにしているそうです。

sub hoge {
    my( $arg1, $arg2 ) = @_;
    # ...
}

人それぞれです。

Perl以外の言語ではshiftを使うような書き方ではなく@_を使うような書き方に近い形をしていてそれで困ることもないので、shiftを使わずに@_で一気に受けてしまっても困ることはないのでしょうけど、shiftで一つずつ受ける書き方が好きですね。