有没有办法在使用严格的时候在Perl中创建一个字符串/变量的变量?

时间:2013-01-30 15:47:14

标签: perl variables

我有这样的陈述:

my $name = $criteria->{'name'} if $criteria->{'name'};
my $age  = $criteria->{'age'}  if $criteria->{'age'};
my $dob  = $criteria->{'dob'}  if $criteria->{'dob'};
.
.
.
# there are around 8 of these

我想做类似的事情:

foreach (qw/name age dob .../) {
    ${$_} = $criteria->{$_} if $criteria->{$_};
}

我确定我之前已经这样做了,但是当我使用use strict尝试它时,它会引发错误。

有办法做到这一点吗?或者有更好的方法来做我想要的吗?我真的很懒,但如果有办法,那就很有趣了。

如果可以,那么以内存方式运行会更有效吗?我正在努力提高脚本的速度。

1 个答案:

答案 0 :(得分:7)

更好的方法是使用已有的哈希,而不是使用当前的包名称空间作为哈希。不,你不是在用你想做的事来节省记忆或时间。事实上,你正在使用更多两者。