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 CST
Selain 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