Operator adalah simbol yang memberitahu kompiler untuk melakukan operasi matematika atau logika tertentu, seperti: 3+2=5.
Bahasa Perl memiliki banyak operator bawaan. Mari kita lihat operator yang umum digunakan:
operator aritmatika
operator perbandingan
Operator logika
operator penugasan
Operator bit
operator kutipan
Operator lain
prioritas operator
Pada contoh tabel, kita menetapkan variabel $a menjadi 10 dan $b menjadi 20.
| operator | menggambarkan | Contoh |
|---|---|---|
| + | Tambahan | $a + $b menghasilkan 30 |
| - | operasi pengurangan | $a - $b menghasilkan -10 |
| * | Perkalian | $a * $b menghasilkan 200 |
| / | Operasi divisi | $b / $a menghasilkan 2 |
| % | Temukan operasi sisa, sisa setelah pembagian bilangan bulat | $b % $a menghasilkan 0 |
| ** | Lipat gandakan ke kekuasaan | Hasil $a**$b adalah 10 dipangkatkan ke-20 |
Hasil output dari eksekusi program di atas adalah:
$a = 10 , $b = 20$a + $b = 30$a - $b = -10$a * $b = 200$a / $b = 0,5$a % $b = 10$a ** $ b = 16
Pada contoh tabel, kita menetapkan variabel $a menjadi 10 dan $b menjadi 20.
| operator | menggambarkan | Contoh |
|---|---|---|
| == | Mengecek apakah nilai kedua operan sama, jika sama maka kondisi benar, jika tidak maka salah. | ($a == $b) salah |
| != | Memeriksa apakah nilai kedua operan sama, jika tidak kondisi benar, jika tidak maka salah. | ($a != $b) benar. |
| <=> | Memeriksa apakah nilai kedua operan sama, mengembalikan -1 jika angka di sebelah kiri lebih kecil dari angka di sebelah kanan, 0 jika sama, dan 1 jika angka di sebelah kiri lebih besar dari angka tersebut di sebelah kanan. | ($a <=> $b) mengembalikan -1. |
| > | Memeriksa apakah nilai operan kiri lebih besar dari nilai operan kanan, jika iya maka kondisi benar, jika tidak maka salah. | ($a > $b) menghasilkan nilai salah. |
| < | Memeriksa apakah nilai operan kiri lebih kecil dari nilai operan kanan, jika demikian maka kondisinya benar, jika tidak maka akan menghasilkan false. | ($a < $b) mengembalikan nilai true. |
| >= | Memeriksa apakah nilai operan kiri lebih besar atau sama dengan nilai operan kanan, jika demikian maka kondisinya benar, jika tidak maka akan menghasilkan false. | ($a >= $b) menghasilkan nilai salah. |
| <= | Memeriksa apakah nilai operan kiri lebih kecil atau sama dengan nilai operan kanan, jika demikian maka kondisinya benar, jika tidak maka akan menghasilkan salah. . | ($a <= $b) mengembalikan nilai benar. |
Hasil output dari eksekusi program di atas adalah:
$a = 10 , $b = 20$a == $b Hasilnya salah$a != $b Hasilnya benar$a <=> $b Return -1$a > $b Hasilnya salah$a >= $b Hasilnya salah $a < $b hasil benar$a <= $b hasil benar
Pada contoh tabel berikut, atur variabel $a menjadi "abc" dan $b menjadi "xyz", lalu gunakan operator perbandingan untuk menghitung hasilnya.
| operator | menggambarkan | Contoh |
|---|---|---|
| lt | Memeriksa apakah string di sebelah kiri lebih kecil dari string di sebelah kanan, jika demikian maka akan menghasilkan nilai benar, jika tidak maka akan menghasilkan nilai salah. | ($a lt $b) mengembalikan nilai true. |
| gt | Memeriksa apakah string di sebelah kiri lebih besar dari string di sebelah kanan, jika demikian maka akan menghasilkan nilai benar, jika tidak maka akan menghasilkan nilai salah. | ($a gt $b) menghasilkan nilai salah. |
| le | Memeriksa apakah string di sebelah kiri lebih kecil atau sama dengan string di sebelah kanan, jika demikian maka akan menghasilkan nilai benar, jika tidak maka akan menghasilkan nilai salah. | ($a le $b) mengembalikan nilai true |
| ya | Memeriksa apakah string di sebelah kiri lebih besar atau sama dengan string di sebelah kanan, jika demikian maka akan menghasilkan nilai benar, jika tidak maka akan menghasilkan nilai salah. | ($a ge $b) menghasilkan nilai salah. |
| persamaan | Memeriksa apakah string di sebelah kiri sama dengan string di sebelah kanan, jika demikian maka akan menghasilkan nilai benar, jika tidak maka akan menghasilkan nilai salah. | ($a eq $b) menghasilkan nilai salah. |
| tidak | Memeriksa apakah string di sebelah kiri tidak sama dengan string di sebelah kanan, jika demikian maka akan menghasilkan nilai benar, jika tidak maka akan menghasilkan nilai salah. | ($a ne $b) mengembalikan nilai true |
| cmp | Mengembalikan 1 jika string di sebelah kiri lebih besar dari string di sebelah kanan, 0 jika sama, dan -1 jika string di sebelah kiri lebih kecil dari string di sebelah kanan. | ($a cmp $b) mengembalikan -1. |
Hasil output dari eksekusi program di atas adalah:
$a = abc, $b = xyzabc lt $b mengembalikan true$a gt $b mengembalikan false$a le $b mengembalikan true$a ge $b mengembalikan false$a ne $b mengembalikan true$a cmp $b mengembalikan -1
Pada contoh tabel, kita menetapkan variabel $a menjadi 10 dan $b menjadi 20.
| operator | menggambarkan | Contoh |
|---|---|---|
| = | Operator penugasan sederhana, memberikan nilai operan kanan ke operan kiri | $c = $a + $b akan menetapkan nilai $a + $b ke $c |
| += | Operator penjumlahan dan penugasan menugaskan hasil penjumlahan operan kanan ke operan kiri ke operan kiri. | $c += $a sama dengan $c = $c + $a |
| -= | Operator pengurangan DAN penugasan menetapkan hasil pengurangan operan kanan dari operan kiri ke operan kiri. | $c -= $a sama dengan $c = $c - $a |
| *= | Operator perkalian dan penugasan menugaskan hasil perkalian operan kanan dengan operan kiri ke operan kiri. | $c *= $a sama dengan $c = $c * $a |
| /= | Operator pembagian dan penugasan menugaskan hasil pembagian operan kiri dengan operan kanan ke operan kiri. | $c /= $a sama dengan $c = $c / $a |
| %= | Modulo dan operator penugasan, menemukan modulus dari dua operan dan menugaskannya ke operan kiri | $c %= $a setara dengan $c = $c % a |
| **= | Operator eksponensial dan penugasan menemukan pangkat dua operan dan menugaskannya ke operan kiri. | $c **= $a sama dengan $c = $c ** $a |
Hasil keluaran dari eksekusi program di atas adalah:
$a = 10, $b = 20. Setelah penugasan, $c = 30$c = 40, pernyataan operasi $c += $a$c = 30, pernyataan operasi $c -= $a$c = 300, pernyataan operasi $c *= $a$c = 30, pernyataan operasi $c /= $a$c = 0, pernyataan operasi $c %= $a$a = 4, $c = 2$c = 16, pernyataan operasi $c **= $a
Operator bitwise beroperasi pada bit dan melakukan operasi sedikit demi sedikit.
Setting $a = 60, $b = 13, sekarang dalam format biner, tampilannya seperti ini:
$a = 0011 1100$b = 0000 1101-----------------$a&$b = 0000 1100$a|$b = 0011 1101$a^$b = 0011 0001 ~$a = 1100 0011
Operator bitwise yang didukung oleh Perl ditunjukkan pada tabel berikut:
| operator | menggambarkan | Contoh |
|---|---|---|
| & | Operator biner AND menyalin satu bit ke hasil jika kedua operan ada. | ($a & $b) akan memberi Anda 12, yang dalam biner adalah 0000 1100 |
| | | Operator biner OR menyalin satu bit ke hasil jika ada di salah satu operan. | ($a | $b) akan mendapatkan 61, yaitu 0011 1101 dalam biner |
| ^ | Operator biner XOR menyalin sedikit hasilnya jika ada di salah satu operan tetapi tidak keduanya. | ($a ^ $b) akan memberi Anda 49, yang dalam biner adalah 0011 0001 |
| ~ | Operator komplemen biner merupakan operator unary yang mempunyai efek “membalik” bit, yaitu 0 menjadi 1 dan 1 menjadi 0. | (~$a ) akan menghasilkan -61, yaitu 1100 0011 dalam biner, bentuk komplemen dari bilangan biner bertanda. |
| << | Operator shift kiri biner. Nilai operan kiri digeser ke kiri sebanyak jumlah bit yang ditentukan oleh operan kanan. | $a << 2 akan memberi Anda 240, yaitu 1111 0000 dalam biner |
| >> | Operator shift kanan biner. Nilai operan kiri digeser ke kanan sesuai jumlah bit yang ditentukan oleh operan kanan. | $a >> 2 akan mendapatkan 15 yang dalam biner adalah 0000 1111 |
Hasil output dari eksekusi program di atas adalah:
$a = 60 , $b = 13$a & $b = 12$a |. $b = 61$a ^ $b = 49~$a = -61$a << 2 = 240$a >> 2 = 15
Operator logika Perl ditunjukkan pada tabel berikut.
Pada contoh tabel, kita menyetel variabel $a ke true dan $b ke false.
| operator | menggambarkan | Contoh |
|---|---|---|
| Dan | Logis DAN operator. Jika kedua operan benar, maka kondisinya benar. | ($a dan $b) salah. |
| && | Operator AND logika gaya C. Kondisi bernilai benar jika kedua operan bernilai benar | ($a && $b) salah. |
| atau | Operator logika OR. Kondisi ini benar jika salah satu dari dua operan bukan nol. | ($a atau $b) benar. |
| || | Operator logika OR gaya C. Kondisi ini benar jika salah satu dari dua operan bukan nol. | ($a || $b) benar. |
| bukan | Operator BUKAN yang logis. Digunakan untuk membalikkan keadaan logis operan. Jika kondisinya benar, operator logika NOT akan menjadikannya salah. | not($a dan $b) benar. |
Hasil keluaran dari eksekusi program di atas adalah:
$a = benar , $b = salah$a dan $b = salah$a && $b = salah$a atau $b = benar$a || $b = truenot($a)= 1
Operator kutipan Perl ditunjukkan pada tabel berikut.
| operator | menggambarkan | Contoh |
|---|---|---|
| Q{ } | Tambahkan tanda kutip tunggal ke string | q{abcd} menghasilkan 'abcd' |
| qq{ } | Tambahkan tanda kutip ganda pada string | qq{abcd} menghasilkan "abcd" |
| qx{ } | Tambahkan backtick ke string | qx{abcd} menghasilkan `abcd` |
Hasil output dari eksekusi program di atas adalah:
q{a = $a} = a = $aqq{a = $a} = a = 10qx{tanggal} = Jumat, 10 Juni 2016 16:22:33 CSTSelain operator yang kami sebutkan di atas, Perl juga mendukung operator berikut:
| operator | menggambarkan | Contoh |
|---|---|---|
| . | Titik (.) digunakan untuk menggabungkan dua string. | Jika $a="run", $b="oob" , maka hasil dari $a.$b adalah "codercto" |
| X | Operator x mengembalikan berapa kali suatu string diulang. | ('-' x 3) Outputnya adalah ---. |
| .. | .. adalah operator jangkauan. | (2..5) Hasil keluarannya adalah (2, 3, 4, 5) |
| ++ | Operator kenaikan, nilai integer bertambah 1 | $a =10, $a++ akan menghasilkan 11 |
| -- | Operator pengurangan, mengurangi nilai integer sebesar 1 | $a =10, $a-- hasilnya 9 |
| -> | Panah digunakan untuk menentukan metode suatu kelas | $obj->$a mewakili metode $a dari objek $obj. |
Hasil keluaran dari eksekusi program di atas adalah:
$a = jalankan , $b = oob$a . $b = codercto"-" x 3 = ---(2..5) = 2 3 4 5$a = 10 , $b = 15$a jalankan $a++ = 11$b jalankan $b-- = 14
Tabel berikut mencantumkan prioritas operator bahasa Perl:
| operator | asosiatif |
|---|---|
| ++, -- | tidak ada |
| -, ~, ! | kanan ke kiri |
| ** | kanan ke kiri |
| =~, !~ | dari kiri ke kanan |
| *, /, %, X | dari kiri ke kanan |
| +, -, . | dari kiri ke kanan |
| <<, >> | dari kiri ke kanan |
| -e, -r, | tidak ada |
| <, <=, >, >=, lt, le, gt, ge | dari kiri ke kanan |
| ==, !=, <=>, persamaan, ne, cmp | dari kiri ke kanan |
| & | dari kiri ke kanan |
| |, ^ | dari kiri ke kanan |
| && | dari kiri ke kanan |
| || | dari kiri ke kanan |
| .. | dari kiri ke kanan |
| ? Dan : | kanan ke kiri |
| =, +=, -=, *=, | kanan ke kiri |
| lainnya | |
| , | dari kiri ke kanan |
| bukan | dari kiri ke kanan |
| Dan | dari kiri ke kanan |
| atau, xor | dari kiri ke kanan |
Hasil keluaran dari eksekusi program di atas adalah:
$a = 20, $b = 10, $c = 15, $d = 5($a + $b) * $c / $d = 90(($a + $b) * $c) / $d = 90($a + $b) * ($c / $d ) = 90$a + ($b * $c )/ $d = 50