L'opérateur ++ en Perl

L'opérateur double plus utilisé Perl pour augmenter la valeur de la variable sur un.

Exemple:

▶ Run
#!/usr/bin/perl

my $i = 100;

$i++;

print $i;

Le programme affichera le nombre de 101.

Le formulaire d'enregistrement

Il existe deux formes d'écriture: vous pouvez spécifier un opérateur après la variable (postfix formulaire d'enregistrement) ou avant la variable (префиксная forme d'écriture):

$i++;
++$i;

Dans ce cas, si la commande se trouve sur une ligne, il n'y a aucune différence entre les notations préfixée et постфиксной forme d'écriture. La différence est que si l'opérateur ++ dans le cadre d'un de l'équipe. Si ++ se trouve devant une variable, la valeur de la variable d'augmenter avant de suivre le reste de l'équipe. Si ++ se trouve après la variable, la valeur de la variable d'augmenter après l'exécution du reste de l'équipe.

Voici un exemple.

Voici le programme affiche le nombre de 100 et 101:

▶ Run
#!/usr/bin/perl

use feature qw(say);

my $i = 100;

say $i++;
say $i;

Et voici le programme affiche le nombre de 101 à deux reprises:

▶ Run
#!/usr/bin/perl

use feature qw(say);

my $i = 100;

say ++$i;
say $i;

++ pour les lignes

De l'opérateur ++ il y a une magie. Il agit de façon particulière si elle est appliquée à la variable dans laquelle se trouve la chaîne.

Il est intéressant de constater que l'opérateur -- la magie n'est pas.

Exemple. Voici le programme affiche la chaîne a2:

▶ Run
#!/usr/bin/perl

my $str = 'a1';

$str++;

print $str;

Voici quelques exemples de ce qui fera l'opérateur ++ avec une chaîne dans une variable:

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

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

'undef' -> 'undeg'

'A+100' -> '1'

Lors de l'utilisation de l'opérateur ++ avec des lignes il y a beaucoup de subtilités. Mieux ne pas s'en servir pour toutes les lignes. Si vous utilisez pour les opérations de la chaîne, alors vous devez très bien comprendre comment il fonctionne ou il y a des erreurs. Mais peut-être que la personne qui d'après vous va travailler avec ce code n'est pas aussi bien compris comment fonctionne ++ pour les lignes et lorsque vous modifiez le code ajoute y des bugs.

Une utilisation incorrecte

L'opérateur ++ vous pouvez utiliser uniquement pour les variables. Si vous tentez d'utiliser ++ n'est pas pour une variable, et pour un simple nombre, c'est génère une erreur. Voici un exemple de code avec l'erreur:

▶ Run
#!/usr/bin/perl

my $i = 100++; # error!

Lors de l'exécution de ce programme sera d'erreur:

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

Exactement la même, vous ne pouvez pas l'appliquer aux tableaux:

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

Et à хешам:

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

Autres articles