看板 Perl 關於我們 聯絡資訊
※ 引述《ForeverT (全家好神)》之銘言: : 如今我有一個文字檔例如下 : name: kent : age: 20 : tel: 4587564 : 我希望perl能把這當成二維陣列來讀 : 但似乎perl把我這檔案當成一維陣列了 : 也就是希望可以 : printf OUT "@aaa->[2]->[2]\n"; #顯示 4587564 : 但實際上不會顯示 : 但 : printf OUT "@aaa->[2]\n"; : 則會顯示 tel: 4587564 : 所以研判我的檔案被當為1維陣列 : 如何改為二維陣列的形式 : 這不是作業 只是和我檔案類似 舉個簡單的例子請教大家 : 希望有高手能指點我 : 新手在此先謝謝各位 我想你需要的是reference 下面是範例 = @row1 = ("name", "kent"); @row2 = ("age", 20); @row3 = ("tel", 4587564); @ref = (\@row1, \@row2, \@row3); print $ref[2]->[1], $/; = @row1 是array \@row1 是@row1的reference $ref[2]->[1]要拆開看 $ref[2] 就是 \@row3 $ref[2]->[1] 就是指到 $row3[1] 囉 最後, $ref[2]->[1] 可以省略 "->", 變成 $ref[2][1] 希望對你有幫助~ 想要知道詳細點可用reference當做關鍵字搜尋囉 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.90.81
ForeverT:感謝你的指點 對於新手的我又成長了但是這只是舉簡單例 03/19 19:24
ForeverT:實際我的檔案 約有6欄 3000列 不太可能一一手工KEY 03/19 19:25
ForeverT:又該如何解呢 就算一列一列讀進去利用spilt 讀進去 03/19 19:27
ForeverT:拆成3000個陣列 也是好大 03/19 19:28
ForeverT:我解決了 用回圈 一直PUSH 陣列給另一個陣列 如下 03/19 21:00
ForeverT:$rows =$#data_information_a; 03/19 21:01
ForeverT:for($i = 0; $i <=$rows; $i++){ 03/19 21:01
ForeverT:my@temp = split(" " , @data_information_a[$i]); 03/19 21:01
ForeverT:push @array , [@temp]; } 03/19 21:02
cot123:我太晚看到了 :p 不過能解決就好~ 03/19 23:49