Operator -- di Perl

Double minus operator ini digunakan di Perl untuk mengurangi nilai suatu variabel dengan satu.

Contoh:

▶ Run
#!/usr/bin/perl

my $i = 100;

$i--;

print $i;

Program ini akan menampilkan jumlah 99.

Formulir pendaftaran

Ada dua bentuk rekaman: anda dapat menentukan operator setelah variabel (Postfix notation) atau sebelum variabel (awalan notasi):

$i--;
--$i;

Jika perintah ini pada satu baris, tidak ada perbedaan antara prefix dan Postfix notasi. Ada perbedaan hanya jika operator -- ini digunakan sebagai bagian dari sebuah tim. Jika -- terletak di depan variabel nilai dari variabel akan meningkat sebelum menjalankan sisa perintah. Jika -- setelah variabel, maka nilai dari variabel akan meningkat setelah menjalankan sisa perintah.

Berikut ini adalah contoh.

Program ini menampilkan nomor 100 dan 99:

▶ Run
#!/usr/bin/perl

use feature qw(say);

my $i = 100;

say $i--;
say $i;

Tapi program ini akan menampilkan nomor 99 kali:

▶ Run
#!/usr/bin/perl

use feature qw(say);

my $i = 100;

say --$i;
say $i;

-- untuk baris

Memiliki operator ++ ada sihir khusus ketika hal ini diterapkan ke variabel yang merupakan string.

Operator -- sehingga tidak ada sihir. String dipaksa nomor dan dari jumlah ini kurangi satu.

Berikut ini adalah contoh. Program ini menampilkan jumlah -1

▶ Run
#!/usr/bin/perl

my $str = 'a1';

$str--;

print $str;

Berikut ini adalah beberapa contoh yang akan membuat operator -- dengan string dalam sebuah variabel:

'a' -> -1
'100ABC' -> 99
'0100ABC' -> 99

Penyalahgunaan

Operator -- hanya dapat digunakan untuk variabel-variabel. Jika anda mencoba untuk menggunakan -- tidak variabel, dan untuk angka yang sederhana, itu akan menghasilkan kesalahan. Berikut ini adalah contoh kode dengan kesalahan:

▶ Run
#!/usr/bin/perl

my $i = 100--; # error!

Ketika anda menjalankan program ini maka akan error:

Can't modify constant item in postdecrement (--) at script.pl line 3, near "100--"
Execution of script.pl aborted due to compilation errors.

Demikian pula, hal ini tidak dapat diterapkan untuk array:

▶ Run
#!/usr/bin/perl

my @arr = (1, 2, 3);

@arr--; # error
Can't modify private array in postdecrement (--) at script.pl line 5, near "@arr--"
Execution of script.pl aborted due to compilation errors.

Dan hash:

▶ Run
#!/usr/bin/perl

my %h = (
    a => 1,
);

%h--; # error
Can't modify private hash in postdecrement (--) at script.pl line 7, near "%h--"
Execution of script.pl aborted due to compilation errors.

Artikel lainnya