とてもくだらない悩み

どうでもいい話。
サブルーチンの引数の渡し方について、どうするのがいいかいつも悩む。

1.こうなのか

hoge(
    $id,
    $name,
    $path,
);
sub hoge {
    my ($id,$name,$path) = @_;
    ...
}

2.こうなのか

hoge(
    {
        id => $id,
        name => $name,
        path =>  $path,
    }
);
sub hoge {
    my ($arg) = @_;
    $arg->{id};
    ...
}


基本的には引数が変わらないような場合は1.、フレキシブルな場合は2.とかなのかな。
好みとしては2.なんだけど、最近は1.の方が読みやすいのかなーという気もしている。
でも引数が増えてくると1.の方が煩雑に見えなくもないんだよなー


そして、引数受けるときも「@_」か「shift」か迷ったり。
そして、プロダクト内は上記が混在していたり><