Referensi adalah sebuah pointer. Referensi Perl adalah tipe skalar yang dapat menunjuk ke variabel, array, tabel hash (juga disebut array asosiatif) atau bahkan subrutin, dan dapat diterapkan di mana saja dalam program.
Saat mendefinisikan suatu variabel, tambahkan di depan nama variabel untuk mendapatkan referensi ke variabel tersebut, misalnya:
$scalarref = $foo; # Referensi variabel skalar $arrayref = @ARGV; # Referensi daftar $hashref = %ENV; # Referensi hash $coderef = &handler; referensi
Kita dapat menggunakan referensi array anonim dalam array, menggunakan definisi []:
$aref= [ 1,"foo",undef,13 ];
Elemen array anonim masih bisa menjadi array anonim, jadi kita bisa menggunakan metode ini untuk membuat array dari array, dan kita bisa membuat array dengan dimensi apa pun.
$aref saya = [ [1, 2, 3], [4, 5, 6], [7, 8, 9],]
Dalam hash kita bisa menggunakan referensi hash anonim, yang didefinisikan menggunakan {}:
$href= { APR =>4, Agustus =>8 };
Kita juga dapat membuat referensi subrutin anonim tanpa nama subrutin:
$coderef = sub { cetak "Codercto!n" };
Dereferensi dapat dibatalkan menggunakan $, @ atau % sesuai dengan tipe yang berbeda.
Hasil dari mengeksekusi contoh di atas adalah:
10 adalah: 101 2 3 adalah: 123%var adalah: key110key220
Jika Anda tidak yakin dengan jenis variabelnya, Anda dapat menggunakan ref untuk menentukannya. Daftar nilai yang dikembalikan adalah sebagai berikut.
SCALARARRAYHASHCODEGLOBREF
Contohnya adalah sebagai berikut:
Hasil dari mengeksekusi contoh di atas adalah:
Tipe referensi r: SCALAR Tipe referensi r: ARRAYr Tipe referensi: HASH
Referensi melingkar terjadi ketika dua referensi saling memuat. Anda harus menggunakannya dengan hati-hati, jika tidak maka akan menyebabkan kebocoran memori, seperti pada contoh berikut:
Hasil dari mengeksekusi contoh di atas adalah:
Nilai foo adalah : REF(0x9aae38)
Format referensi fungsi: &
Format pemanggilan fungsi referensi: & + nama referensi yang dibuat.
Contohnya adalah sebagai berikut:
Hasil dari mengeksekusi contoh di atas adalah:
elemen: elemen usia: 3 elemen: elemen nama: codercto