參考

參考 在 Perl

9 個練習

關於 參考

瞭解參照是有效使用 Perl 的基本要素。由於參照是純量,而陣列和雜湊只能包含純量,因此參照是巢狀這些資料結構的關鍵。

你可以使用反斜線運算子\,為現有的變數和副程式建立參照:

  • \$scalar 建立純量參照(這可以是任何純量,例如\1,不只是變數)。
  • \@array 建立陣列參照。
  • \%hash 建立雜湊參照。
  • \&sub 建立程式碼參照。

你也可以為陣列、雜湊和副程式建立所謂的匿名參照:

  • ['Alice', 'Bob', 'Charlie'] 建立匿名陣列參照。
  • {foo => 'a', bar => 'b', baz => 'c'} 建立匿名雜湊參照。
  • sub { return 1 } 建立匿名程式碼參照。

警告:Perl 中的大括號在某些情境下可能會有歧義。如果你得不到預期的雜湊參照,在開頭加上一個加號來消除歧義,例如+{}。詳情請見大括號。

參照可以透過箭號運算子->存取:

  • $ref->[0] 存取陣列參照內的元素。
  • $ref->{foo} 存取雜湊參照內的值。
  • $ref->($arg) 透過程式碼參照呼叫副程式。

複雜資料結構(例如多維陣列和巢狀雜湊)裡的資料,可以藉由串接索引來存取,例如$ref->{foo}[0]{bar}(等同於$ref->{foo}->[0]->{bar})。

如果你想解參照整個陣列或雜湊,可以使用箭號運算子加上@*或%*,例如$ref->@*或$ref->%*。 你也可以把*換成索引,取得陣列或雜湊參照的切片,例如$ref->@[0..2]或$ref->@{'Foo', 'Bar'}。 對切片而言,符號的變化在這裡的適用方式,和陣列與雜湊變數相同。

透過 GitHub 編輯 連結會在新視窗或分頁中開啟

學習 參考

練習已鎖定

再解鎖 8 個練習,就能練習 參考