2012-10-30 49 views
2

內部數組編輯:推陣列的perl

我怎麼能推到@myarr $菜單(見下文)

my @myarr = (
       [ "itemone", "itemoneb", "itemonec" ], 
       [ "itemtwo", "itemtwob", "itemtwoc" ], 
       [ "itemthree", "itemthewwb", "itemthreec" ], 
       [ "itemfour", "itemfourb", "itemfourc" ] 
       ); 

$menu = [ 
     "List", 
     ["itemone", \&ds2], 
     ["itemtwo", \&ds2], 
     ["itemthree", \&ds2], 
     ["itemfour", \&ds2], 
     [ "Do Something (second)", \&ds2 ] 
    ]; 
+0

你嘗試過什麼,什麼結果是什麼?閱讀[perlreftut](http://p3rl.org/perlreftut)後不應該那麼難。 :) – memowe

+0

您是否試圖將「itemoneb」和「itemonec」推入保存「itemone」的現有arrayref中?什麼是'&ds2'? – plusplus

+1

爲什麼這是封閉的不是一個真正的問題。這是完全清楚的問題。 – Owl

回答

2

你只需將其推:

use Data::Dumper; 
push (@$menu, @myarr); 
print Dumper($menu), "\n"; 
+6

這會將'@ myarr'的元素推入'@ $ menu'中,以推送一個數組推送其引用'push $ @ menu,\ @ myarr' – tuxuday

3

這取決於你想要做什麼。

您可以直接推陣:

push (@$menu, @myarr); 

#results in: 

[ 
    "List", 
    ["itemone", \&ds2], 
    ["itemtwo", \&ds2], 
    ["itemthree", \&ds2], 
    ["itemfour", \&ds2], 
    [ "Do Something (second)", \&ds2 ], 
    [ "itemone", "itemoneb", "itemonec" ], 
    [ "itemtwo", "itemtwob", "itemtwoc" ], 
    [ "itemthree", "itemthewwb", "itemthreec" ], 
    [ "itemfour", "itemfourb", "itemfourc" ] 
]; 

或推參考:

push (@$menu, \@myarr); 

#results in: 

[ 
    "List", 
    ["itemone", \&ds2], 
    ["itemtwo", \&ds2], 
    ["itemthree", \&ds2], 
    ["itemfour", \&ds2], 
    [ "Do Something (second)", \&ds2 ], 
    [ 
     [ "itemone", "itemoneb", "itemonec" ], 
     [ "itemtwo", "itemtwob", "itemtwoc" ], 
     [ "itemthree", "itemthewwb", "itemthreec" ], 
     [ "itemfour", "itemfourb", "itemfourc" ], 
    ], 
];