我有一种情况,我有一个应用程序,它映射到我需要在zipfile中处理的目录。映射很简单:Perl中的哈希常量
CWA => "Financial",
PIP => "",
IFA => "IFA",
VDX => "Financial,
也就是说,如果该文件的名称与CWA
开始,我知道我必须Munge时间目录是Financial
下。如果文件名以IFA
开头,我知道目录名称是IFA
。我想把它设置为散列(很简单),但是由于这些值并没有真正改变,所以我想将这个key =>值映射设置为散列常量。
我不相信这是可能的,所以我想做下一件好事。那会是什么?或者,你可以设置一个哈希常量?
我想写一个子程序,你传递一个参数,它返回正确的值。毕竟,常量本身就是这样工作的,它确保了键和值之间的关系不会在整个程序中发生变化。
或者,我可以简单地在我的程序开始处声明key => value关系,并希望key => value对不会被某些东西修改。这样会更容易阅读,并且如果您必须修改,则更容易,因为它位于我的源代码的顶部。
实现key => value constant的最佳方式是什么?
定义函数外的我的%映像,正上方(和该函数在调用代码的单独模块中,以便隐藏我的变量)。这可以避免每次调用函数时不必要的重新初始化哈希。 – ijw 2010-12-06 19:53:23
这是一个很好的观点。或者,在5.10+中,使用`state`,它提供了最好的隐藏,但仍然只初始化一次。 – hobbs 2010-12-06 20:28:37
第二个作品,但我不得不{{shift}。否则,它需要{shift}作为索引本身。 – 2010-12-06 21:03:52