2014-07-16 32 views
1

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

感谢您的任何建议!

+1

传递参数散列http://www.perlmonks.org/?node_id=60798 –

+0

谢谢,不知道为什么我没有想到这一点! –

回答

1

传递散列引用,例如

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

然后,您可以通过名称访问这些参数:

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

你也可以传递键/值对的列表(或一个普通的哈希值),并使用:

my %arg = @_; 

这可能会导致混合命名和位置参数的头痛,但这是一种设计函数接口的相当放荡的方式,我不会推荐。

+3

它不会牺牲任何东西;它只会节省你输入许多不必要的'{}'和' - >'。 – ikegami

相关问题