2013-05-30 142 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