Perl数据结构:如何从数组创建数组引用

Perl数据结构:如何从数组创建数组引用,perl,Perl,我有以下数据结构: @keys = [1, 2, 3, 4]; 使用从1到4的循环,我想创建一个新的数据结构,如 $new = +{ key => '1', meaning => '', time => '', }; 因此,在本例中,基本上我有四个新的数据结构 我需要使用地图功能吗 my @keys = (1, 2, 3, 4); my @array = map +{ key => $_, meanin

我有以下数据结构:

@keys = [1, 2, 3, 4];
使用从1到4的循环,我想创建一个新的数据结构,如

$new = +{ key     => '1',
          meaning => '',
          time    => '', };
因此,在本例中,基本上我有四个新的数据结构

我需要使用地图功能吗

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

my @array = map +{ 
  key => $_,
  meaning => '',
  time => '', 
} @keys;
现在@array的元素数与@keys相同,它们是散列引用


现在@array和@keys有相同数量的元素,它们是散列引用。

令人困惑的问题,但我认为你们的问题在于

@keys = [1, 2, 3, 4];
这可能不是你的意思。应该是

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

我假设是第一个。然后是的,您可以用map填充一个记录数组

@records = map( {key => $_,meaning => '',time => ''}, @keys );

令人困惑的问题,但我认为你们的问题是

@keys = [1, 2, 3, 4];
这可能不是你的意思。应该是

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

我假设是第一个。然后是的,您可以用map填充一个记录数组

@records = map( {key => $_,meaning => '',time => ''}, @keys );

您可以使用map或foreach,尽管map更为常见/惯用。@keys=[1,2,3,4]不分配数组,它分配数组数组。好的,数组的第一个元素是数组。@mpapec回滚了您的编辑。除非OP明确指出这是一个打字错误,否则你无法修复问题中的代码。是的,我非常抱歉,我的意思是@keys=1,2,3,4;您可以使用map或foreach,尽管map更为常见/惯用。@keys=[1,2,3,4]不分配数组,它分配数组数组。好的,数组的第一个元素是数组。@mpapec回滚了您的编辑。除非OP明确指出这是一个打字错误,否则你无法修复问题中的代码。是的,我非常抱歉,我的意思是@keys=1,2,3,4;你对主要问题的编辑有问题。如果OP真的在他自己的代码中包含了这一点,那么任何人都不可能帮助他。我猜OP有打字错误。是的,你为什么要这么做呢。不过,也有可能不是打字错误。你对主要问题的编辑是有问题的。如果OP真的在他自己的代码中包含了这一点,那么任何人都不可能帮助他。我猜OP有打字错误。是的,你为什么要这么做呢。不过,也有可能不是打字错误。