我有數組引用的列表: my @a = ([1,2],[3,4])
我怎樣才能稱爲數組「@b」在@a第一陣列((1,2)
)?我嘗試了各種解引用組合,但它們似乎都會引發錯誤。Perl的名單引用
0
A
回答
6
解除引用由@a
陣列的第一元件,
my @b = @{ $a[0] };
注意到@b
陣列是一個副本,以及可能的變化不會反映在@{$a[0]}
2
@a
實際上包含兩個元素以上 - 兩個引用到子陣列。它可能看起來像4個元素,但事實並非如此。
所以,你可以這樣做:
my ($ref1, $ref2) = @a;
然後解除引用$ref1
:
@b = @{ $ref1 };
但正如我敢肯定你會發現有 - 你不需要調用它$ref1
因爲它的也$a[0]
。因此:
@b = @{$a[0]};
注 - 您需要的括號 - @$a[0]
實際上是(@$a)[0]
這是不是你想要的。 (因爲$a
未定義)
相關問題
- 1. Perl中的引用子類包名稱
- 2. Perl:數組引用與匿名數組
- 3. 單引號的Perl單線程
- 4. 使用Perl?綁定在單引號內
- 5. Perl中,引用
- 6. Perl HTML :: Strip白名單
- 7. 按名稱引用表單
- 8. 反斜槓在Perl中的單引號
- 9. perl的名單:: AllUtils uniq的和排序
- 10. Perl:陣列引用
- 11. 引用Perl哈希
- 12. Perl中的弱引用
- 13. Perl - 數組的引用
- 14. Perl中的引用數組
- 15. 的Perl - 關於解引用
- 16. 的Perl引用類方法
- 17. 在Perl中是否有可用於引用模塊名稱的別名?
- 18. 獲取列名的索引號用Perl DBI
- 19. 確定Perl代碼引用的子例程名稱
- 20. 排序Grails中引用的名單
- 21. 添加引用的名單datamodelr
- 22. 用Perl(DBI)引用列(MySQL)
- 23. Perl正則表達式單引號
- 24. Perl中單引號和雙引號的區別是什麼?
- 25. Perl命令行:目錄參數的單引號和雙引號
- 26. perl的查找和使用單引號替換
- 27. 如何在perl的-e參數中使用文字單引號?
- 28. perl不是哈希引用
- 29. Perl - 取消引用哈希
- 30. Perl解引用語法
謝謝,@b = @ {$ a [0]};成功了!但我很困惑。爲什麼需要使用大括號來進行解引用?我見過的文檔說你應該能夠在數組引用之前直接放置一個'@',比如@myArr = @ $ myArrRef。我嘗試做像$ temp = $ a [0]; @b = @ $ temp或@b = @($ a [0]),但他們都沒有工作。爲什麼僅僅因爲我創建了一系列引用而需要大括號? – user553702 2014-09-06 07:56:05