Cara mengakses elemen array di Perl

Tugas. Di Perl, program ini memiliki sebuah array. Anda perlu untuk membaca nilai salah satu elemen array.

Berikut ini adalah contoh dari bagaimana untuk melakukannya:

▶ Run
#!/usr/bin/perl

my @arr = ('one', 'two', 'three');

print $arr[1];

Jika anda menyimpan teks dari program ini menjadi file script.pl dan menjalankan perl script.pl, layar akan muncul teks two.

Jadi, apa yang terjadi di sini.

Pertama, kita buat sebuah array bernama @arr. Variabel-array dimulai dengan karakter @, simbol ini mirip dengan yang pertama surat dari kata "array". Kami telah menciptakan sebuah array dan telah ditempatkan di 3 item. Dalam contoh kita, semua 3 item line, tetapi semua dalam satu array dapat berisi barang-barang dari jenis yang sangat berbeda, misalnya, string, angka dan referensi.

Setiap elemen dalam array memiliki nomor seri sendiri. Jumlah ini disebut "indeks". Dalam bahasa pemrograman Perl dan banyak bahasa pemrograman yang lain elemen array diberi nomor urut dimulai dengan angka 0. Dalam contoh di array mengandung 3 unsur:

  • string 'one' adalah elemen array dengan indeks 0
  • string 'two' adalah elemen array dengan indeks 1
  • string 'three' adalah elemen array dengan indeks 2

Dalam rangka untuk mengakses elemen array dengan indeks 1 yang anda butuhkan untuk menulis $arr[1]. Menuliskan nama array dan persegi kurung menulis indeks dari item yang kita inginkan untuk mengambil. Catatan salah satu fitur. Ketika kita berpaling salah satu elemen dari array, bukan simbol @ di nama hotel yang anda butuhkan untuk menulis simbol $ (tanda dolar, simbol ini mirip dengan yang pertama huruf dalam kata "skalar"). Idenya adalah bahwa dengan catatan tersebut, kita dengan jelas menekankan bahwa kita perlu untuk mendapatkan satu nilai, tetapi, menurut pendapat saya, ini adalah kesalahan desain bahasa. Itu tidak menyederhanakan, tapi sebaliknya membuat semua lebih sulit. Dalam bahasa pemrograman Perl6 adalah tetap, tapi di Perl5 ketika mengakses elemen array, anda harus menggunakan tanda dolar $: $arr[1].

Merujuk ke elemen terakhir dalam array

Ketika anda membuat sebuah array @arr muncul secara otomatis variabel $#arr yang berisi indeks dari elemen terakhir. Ketika menambahkan/menghapus elemen dari array ke variabel secara otomatis berubah (dan bahkan anda dapat memiliki rekor jumlah dalam variabel ini).

Untuk mengakses elemen terakhir dari array, anda dapat menggunakan rekaman $arr[$#arr]. Tapi mudah gunakan $arr[-1]. Indeks -1 berarti indeks elemen terakhir dalam array, indeks -2 — kedua dari belakang, dll.

Cara yang salah

Berikut adalah kode (hati-hati, ini berisi kesalahan):

▶ Run
#!/usr/bin/perl

my @arr = ('one', 'two', 'three');

print @arr[1]; # error

Pilihan ini hanya sebagai benar, tapi bukan yang benar untuk mengakses elemen array menggunakan $arr[1]di sini digunakan @arr[1].

Jika anda menyimpan teks dari program ini menjadi file script.pl dan menjalankannya perl script.pl, layar akan menjadi teks two. String 'two', ini memang elemen dengan indeks 1 dalam array @arr, jadi pada pandangan pertama, kesalahan yang tidak terlihat.

Tetapi jika anda menambahkan kode program baris use warnings; (yang hampir selalu layak dilakukan), maka output akan terlihat peringatan:

Scalar value @arr[1] better written as $arr[1] at script.pl line 7.
two

Bentuk @arr[ ] — adalah mendapatkan beberapa nilai dari array. Hal ini disebut "cut". Beberapa contoh:

  • @arr[1,2] — menampilkan daftar dari dua elemen, elemen array dengan indeks 1 dan 2
  • @arr[0..2] — menampilkan daftar dari tiga elemen, elemen array dengan indeks 0, 1 dan 2
  • @arr[1, 1] — menampilkan daftar dari dua elemen, mengulangi elemen pada indeks 1 dua kali

Entri @arr[1] — menampilkan daftar dari satu elemen, ditambah isu peringatan.

Entri @arr[1,] — mengembalikan daftar salah satu elemen tanpa peringatan.

Jika anda membutuhkan nilai salah satu elemen dari array, itu lebih baik untuk menulis $arr[1].

Topik terkait

Artikel lainnya