将大量参数传递给Perl子例程或?

时间:2014-07-16 21:53:54

标签: perl parameters

我编写了一些perl脚本来生成一些HTML文件。有一个主要脚本从用户接收参数,然后该脚本获取参数并将其中的一些传递给包含子例程的其他脚本以生成HTML。它工作得很好,但我一直在考虑添加新的东西,这导致我需要更多的脚本参数。我在主脚本上有7个参数,子程序有6个参数,我觉得将来很难修改这个代码,因为它开始让人感到困惑。是否有更合理/有组织的方法将一堆参数传递给脚本?

感谢您的任何建议!

1 个答案:

答案 0 :(得分:1)

传递哈希引用,例如

sub named_parameters { ... }
named_parameters(
    {
        foo => $val1,
        bar => $val2,
        baz => ...
    }
);

然后您可以按名称访问参数:

my $arg_ref = shift;
do_stuff_with $arg_ref->{foo};
...

您还可以传递键/值对(或普通哈希)的列表,并使用:

my %arg = @_;

这可能会导致混淆的命名和位置参数令人头疼,但这是设计函数界面的一种相当荒谬的方式,我无论如何也不推荐这样做。