我有一种情况,我有一个应用程序,它映射到我需要在 zipfile 中处理的目录。映射非常简单:
CWA => "Financial",
PIP => "",
IFA => "IFA",
VDX => "Financial,
也就是说,如果文件名以
CWA
开头,我知道我要munge的目录在Financial
下.如果文件名以 IFA
开头, 我知道目录名是 IFA
.我想将其设置为散列(足够简单),但由于这些值并没有真正改变,我想将此键 => 值映射设置为散列常量。我不相信这是可能的,所以我想做下一个最好的事情。那会是什么?或者,您可以设置哈希常量吗?
我正在考虑编写一个子程序,您可以在其中传递一个参数并返回正确的值。毕竟,这确实是常量本身的工作方式,它可以保证键和值之间的关系在整个程序中不会改变。
或者,我可以在程序的开头简单地声明键 => 值关系,并希望键 => 值对不会被某些东西修改。这将更易于阅读,并且在您必须时更容易修改,因为它位于我的源代码的最顶部。
实现键 => 值常量的最佳方法是什么?
最佳答案
.
sub get_directory_for_prefix {
my ($prefix) = @_;
my %map = (
CWA => "Financial",
PIP => "",
IFA => "IFA",
VDX => "Financial",
);
return $map{$prefix};
}
甚至
sub get_directory_for_prefix {
{CWA=>"Financial",PIP=>"",IFA=>"IFA",VOX=>"Financial"}->{shift()};
};
关于perl - Perl 中的哈希常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4370058/