Der Betreiber ++ in Perl

Der Operator Double Plus wird in Perl zu erhöhen den Wert der Variablen um eins.

Beispiel:

▶ Run
#!/usr/bin/perl

my $i = 100;

$i++;

print $i;

Das Programm zeigt die Nummer 101.

Formen der Aufnahme

Es gibt zwei Formen der Aufnahme: damit können Sie den Operator nach der Variablen (Postfix Notation) oder vor einer Variablen (префиксная Notation):

$i++;
++$i;

Wenn das Team befindet sich auf eine Zeile, dann gibt es keinen Unterschied zwischen Präfix-und постфиксной Form der Aufzeichnung. Der Unterschied ist nur, wenn der Betreiber ++ verwendet in der Zusammensetzung der einige Teams. Wenn ++ befindet sich vor der Variablen, wird der Wert der Variablen zu erhöhen, bevor Sie dem restlichen Team. Wenn ++ befindet sich nach einer Variablen, so der Wert der Variablen erhöht nach der Ausführung des restlichen Teams.

Hier ist ein Beispiel.

Hier ist dieses Programm zeigt die zahlen 100 und 101:

▶ Run
#!/usr/bin/perl

use feature qw(say);

my $i = 100;

say $i++;
say $i;

Aber dieses Programm zeigt die Nummer 101 zwei mal:

▶ Run
#!/usr/bin/perl

use feature qw(say);

my $i = 100;

say ++$i;
say $i;

++ für die Zeilen

Der Betreiber ++ gibt es eine spezielle Magie. Er gilt in besonderer Weise, wenn er angewendet wird auf die Variable in dem String ist.

Interessant ist dabei dass der Betreiber -- eine solche Magie nicht.

Beispiel. Hier ist dieses Programm zeigt die Zeile a2:

▶ Run
#!/usr/bin/perl

my $str = 'a1';

$str++;

print $str;

Hier ein paar Beispiele was macht der Betreiber ++ mit der Zeichenfolge in der Variablen:

'a' -> 'b'
'b' -> 'c'
'z' -> 'aa'
'aa' -> 'ab'
'az' -> 'ba'
'zz' -> 'aaa'

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

'undef' -> 'undeg'

'A+100' -> '1'

Bei der Verwendung des operators ++ mit den Zeilen gibt es viele Feinheiten. Am besten überhaupt nicht verwenden in Bezug auf die Zeilen. Wenn Sie ihn verwenden, um Operationen mit Strings, dann sollten Sie sehr gut verstehen wie er funktioniert oder Fehler. Aber es ist möglich, dass der Mensch der nach der Sie funktioniert mit diesem Code nicht so gut versteht wie funktioniert ++ für die Zeilen und beim ändern des Codes fügt dort Bugs.

Falsche Verwendung

Der Betreiber ++ kann nur für Variablen. Wenn Sie versuchen, verwenden ++ nicht für Variablen, sondern auch für die einfachen zahlen, dann ist es einen Fehler aus. Hier ist ein Beispiel Code mit dem Fehler:

▶ Run
#!/usr/bin/perl

my $i = 100++; # error!

Bei der Ausführung dieses Programms wird der Fehler:

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

Ebenso kann es nicht anwenden auf Arrays:

▶ 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.

Und zu Hesham:

▶ 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.

Andere Artikel