我寫了幾個Perl腳本來生成一些HTML文件。有一個主要腳本從用戶接收參數,然後這個腳本獲取參數並將其中的一些傳遞給包含子例程的其他腳本以生成HTML。它工作得很好,但我一直在考慮添加新的東西,這導致我需要腳本的更多參數。我在主腳本中有7個參數,在子程序中我有6個參數,我覺得將來很難修改這些代碼,因爲它開始看起來很混亂。是否有一個更合理的/有組織的方式將一堆參數傳遞給腳本?將大量參數傳遞給Perl子例程或?
感謝您的任何建議!
我寫了幾個Perl腳本來生成一些HTML文件。有一個主要腳本從用戶接收參數,然後這個腳本獲取參數並將其中的一些傳遞給包含子例程的其他腳本以生成HTML。它工作得很好,但我一直在考慮添加新的東西,這導致我需要腳本的更多參數。我在主腳本中有7個參數,在子程序中我有6個參數,我覺得將來很難修改這些代碼,因爲它開始看起來很混亂。是否有一個更合理的/有組織的方式將一堆參數傳遞給腳本?將大量參數傳遞給Perl子例程或?
感謝您的任何建議!
傳遞散列引用,例如
sub named_parameters { ... }
named_parameters(
{
foo => $val1,
bar => $val2,
baz => ...
}
);
然後,您可以通過名稱訪問這些參數:
my $arg_ref = shift;
do_stuff_with $arg_ref->{foo};
...
你也可以傳遞鍵/值對的列表(或一個普通的哈希值),並使用:
my %arg = @_;
這可能會導致混合命名和位置參數的頭痛,但這是一種設計函數接口的相當放蕩的方式,我不會推薦。
它不會犧牲任何東西;它只會節省你輸入許多不必要的'{}'和' - >'。 – ikegami
傳遞參數散列http://www.perlmonks.org/?node_id=60798 –
謝謝,不知道爲什麼我沒有想到這一點! –