El operador de ++ en Perl

El operador de doble plus se utiliza en Perl para aumentar el valor de la variable en uno.

Ejemplo:

▶ Run
#!/usr/bin/perl

my $i = 100;

$i++;

print $i;

El programa mostrará en pantalla el número 101.

La forma de entrada

Hay dos formas de escritura: se puede especificar un operador después de la variable (постфиксная formulario de registro) o antes de la variable (префиксная formulario de registro):

$i++;
++$i;

En caso de que el equipo está en una línea, entonces no hay diferencia entre notaciones prefija y постфиксной de la forma de la escritura. La diferencia es si el operador de ++ se utiliza como parte de un equipo. Si ++ se encuentra delante de la variable, el valor de la variable aumentará antes de realizar el resto del equipo. Si ++ se encuentra después de la variable, el valor de la variable aumentará después de la ejecución del resto del equipo.

He aquí un ejemplo.

Aquí esta el programa mostrará en pantalla el número 100 y 101:

▶ Run
#!/usr/bin/perl

use feature qw(say);

my $i = 100;

say $i++;
say $i;

Y aquí esta el programa mostrará en pantalla el número 101 dos veces:

▶ Run
#!/usr/bin/perl

use feature qw(say);

my $i = 100;

say ++$i;
say $i;

++ para las filas

El operador de ++ hay un especial de la magia. Actúa de manera especial si aplicar a la variable en la que se encuentra la cadena.

Y es interesante que el operador -- de esa magia no.

Ejemplo. Aquí esta el programa mostrará en pantalla la cadena de a2:

▶ Run
#!/usr/bin/perl

my $str = 'a1';

$str++;

print $str;

He aquí algunos ejemplos de lo que hará el operador ++ con una cadena en una variable:

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

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

'undef' -> 'undeg'

'A+100' -> '1'

Cuando se utiliza el operador ++ con cadenas hay un montón de matices. Lo mejor es no usar conforme a las filas. Si utiliza para las operaciones de filas, entonces usted tiene que entender muy bien cómo funciona o hay errores. Pero es posible que la persona que después de que usted va a trabajar con este código no entiende muy bien cómo funciona ++ para las filas y con el cambio de código agrega allá de los errores.

El mal uso de

El operador de ++ se puede utilizar sólo para las variables. Si intenta utilizar la ++ no para la variable y para un número primo, entonces es se generará un error. He aquí un ejemplo de código con el error:

▶ Run
#!/usr/bin/perl

my $i = 100++; # error!

La ejecución de este programa será de error:

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

De la misma manera no se puede aplicar a matrices:

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

Y es como un 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.

Otros articulos