Operator ++ di Perl

Double plus operator ini digunakan di Perl untuk meningkatkan nilai suatu variabel dengan satu.

Contoh:

▶ Run
#!/usr/bin/perl

my $i = 100;

$i++;

print $i;

Program ini akan menampilkan nomor 101.

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 101:

▶ Run
#!/usr/bin/perl

use feature qw(say);

my $i = 100;

say $i++;
say $i;

Tapi program ini menampilkan nomor 101 dua kali:

▶ Run
#!/usr/bin/perl

use feature qw(say);

my $i = 100;

say ++$i;
say $i;

++ untuk baris

Operator ++ memiliki sihir khusus. Ia bertindak dengan cara yang khusus jika hal ini diterapkan ke variabel yang merupakan string.

Dan yang menarik adalah bahwa operator -- sehingga tidak ada sihir.

Contoh. Program ini akan menampilkan string a2:

▶ 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' -> 'b'
'b' -> 'c'
'z' -> 'aa'
'aa' -> 'ab'
'az' -> 'ba'
'zz' -> 'aaa'

'A1' -> 'A2'
'A9' -> 'B0'

'undef' -> 'undeg'

'A+100' -> '1'

Bila anda menggunakan operator ++ dengan string ada banyak seluk-beluk. Cara terbaik adalah untuk tidak berlaku untuk baris. Jika anda digunakan untuk operasi baris, anda memiliki pemahaman yang sangat baik dari cara kerjanya atau ada kesalahan. Tetapi adalah mungkin bahwa orang-orang setelah itu anda akan harus bekerja dengan kode ini tidak begitu baik memahami bagaimana ++ untuk string dan ketika anda mengubah kode untuk menambahkan bug.

Penyalahgunaan

Operator ++ hanya dapat digunakan untuk variabel-variabel. Jika anda mencoba untuk menggunakan ++ tidak untuk variabel, dan bilangan prima, maka 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 postincrement (++) 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 postincrement (++) 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 postincrement (++) at script.pl line 7, near "%h++"
Execution of script.pl aborted due to compilation errors.

Artikel lainnya