L'operatore ++ in Perl

L'operatore doppio più utilizzato in Perl per aumentare il valore di una variabile in uno.

Esempio:

▶ Run
#!/usr/bin/perl

my $i = 100;

$i++;

print $i;

Il programma visualizzerà il numero 101.

Modulo di registrazione

Ci sono due forme di registrazione: è possibile specificare l'operatore dopo la variabile (suffisso forma di registrazione) o prima variabile (prefisso forma di registrazione):

$i++;
++$i;

Nel caso in cui la squadra è uno a posto, allora non c'è differenza tra le notazioni prefissa e postfix modulo di registrazione. La differenza è solo se l'operatore ++ viene utilizzato come parte di un team. Se ++ si trova di fronte a una variabile, il valore della variabile aumenterà prima di eseguire il resto della squadra. Se ++ si trova dopo la variabile, il valore di una variabile aumenta dopo il resto della squadra.

Ecco un esempio.

Ecco il programma visualizzerà il numero 100 e 101:

▶ Run
#!/usr/bin/perl

use feature qw(say);

my $i = 100;

say $i++;
say $i;

Ma questo programma visualizza il numero 101 due volte:

▶ Run
#!/usr/bin/perl

use feature qw(say);

my $i = 100;

say ++$i;
say $i;

++ per le righe

L'operatore ++ c'è una speciale magia. Agisce in modo particolare se applicare alla variabile in cui si trova la stringa.

È interessante notare che l'operatore -- così non c'è nessuna magia.

Esempio. Ecco il programma visualizza una riga a2:

▶ Run
#!/usr/bin/perl

my $str = 'a1';

$str++;

print $str;

Ecco alcuni esempi di quello che farà l'operatore ++ con una stringa in una variabile:

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

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

'undef' -> 'undeg'

'A+100' -> '1'

Quando si utilizza l'operatore ++ con le stringhe ci sono un sacco di sottigliezze. Meglio non utilizzare in relazione a righe. Se si utilizza per le operazioni con le stringhe, allora avete bisogno di capire molto bene come funziona o ci saranno errori. Ma è possibile che una persona che dopo si dovrà lavorare con questo codice non capisce bene come funziona ++ per le righe e se si modifica il codice aggiungerà lì bug.

L'uso improprio di

L'operatore ++ può essere utilizzato solo per le variabili. Se si tenta di utilizzare ++ non per la variabile, e per un numero primo, allora questo è genera un errore. Ecco un esempio di codice di errore:

▶ Run
#!/usr/bin/perl

my $i = 100++; # error!

Quando si esegue questo programma sarà un errore:

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

Allo stesso modo non può essere applicato a matrici:

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

E a хешам:

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

Altri articoli