2013-05-30 145 views
1

我有以下数据结构:Perl数据结构:如何从一个数组创建一个数组引用

@keys = [1, 2, 3, 4]; 

,并使用来自1循环(for)到4,我想创建一个新的数据结构像

$new = +{ key  => '1', 
      meaning => '', 
      time => '', }; 

所以,基本上我会在这里是四个$new数据结构。

我是否需要使用地图功能?

+1

虽然'map'更常用/习惯用法,您可以使用'map'或'foreach'。 –

+1

'@keys = [1,2,3,4]'不分配数组,它分配一个数组数组(嗯,数组的第一个元素是一个数组)。 – TLP

+0

@mpapec回滚您的编辑。除非OP明确表示这是一个错字,否则您不能修复问题中的代码。 – TLP

回答

5

混淆的问题,但我觉得你的问题是,

@keys = [1, 2, 3, 4]; 

很可能你的意思是不是。它应该是

@keys = (1, 2, 3, 4); 

$keysref = [1, 2, 3, 4]; 

我假设第一。然后是的,你可以用地图填充一组记录

@records = map({key => $_,meaning => '',time => ''}, @keys); 
1
my @keys = (1, 2, 3, 4); 

my @array = map +{ 
    key => $_, 
    meaning => '', 
    time => '', 
} @keys; 

现在@array有相同数量的元素@keys的,他们是哈希引用。

+0

你对主要问题的编辑是值得怀疑的。如果OP真的有自己的代码,那么任何人都不可能帮助他。 – TLP

+0

我的猜测是OP做错了。 –

+0

是的,为什么你会做到这一点。不过,这可能不是一个错字。 – TLP