O operador ++ em Perl

O operador dupla mais utilizada em Perl para aumentar o valor da variável em um.

Exemplo:

▶ Run
#!/usr/bin/perl

my $i = 100;

$i++;

print $i;

O programa exibirá o número 101.

O formulário de entrada

Existem duas formas de registros: você pode especificar um operador, após uma variável (postfix formulário de registo) ou antes de uma variável (префиксная o formulário de entrada):

$i++;
++$i;

No caso de a equipe está em uma linha, então não há diferença entre префиксной e постфиксной forma de gravação. A diferença é apenas se o operador ++ é usado como parte de alguma equipe. Se ++ está na frente de uma variável, o valor da variável aumentar antes de executar o restante da equipe. Se ++ encontra-se depois a uma variável, então o valor da variável aumentar após a execução do restante da equipe.

Aqui está um exemplo.

Ora, este é o programa exibirá o número 100 e 101:

▶ Run
#!/usr/bin/perl

use feature qw(say);

my $i = 100;

say $i++;
say $i;

E aqui esta o programa exibirá o número 101 duas vezes:

▶ Run
#!/usr/bin/perl

use feature qw(say);

my $i = 100;

say ++$i;
say $i;

++ para as linhas de

Operador de ++ tem uma magia. Ele age de uma maneira especial de se aplicar a variável na qual se encontra a cadeia.

E interessante que o operador -- tal magia não.

Exemplo. Ora, este é o programa exibirá a linha a2:

▶ Run
#!/usr/bin/perl

my $str = 'a1';

$str++;

print $str;

Aqui estão alguns exemplos que fará com que o operador ++ com a cadeia de caracteres em uma variável:

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

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

'undef' -> 'undeg'

'A+100' -> '1'

Ao usar o operador ++ com linhas existem muitas sutilezas. O melhor é não usar a relação a linhas. Se você usa para operação de cadeias de caracteres, então você deve ter um bom entendimento de como ele funciona ou não haverá erros. Mas é possível que o homem que depois você vai trabalhar com esse código não é tão bom entender como funciona a ++ linhas e quando você alterar o código adiciona lá de bugs.

Uso indevido

O operador ++ só pode ser utilizado para variáveis. Se você tentar usar o ++ não para uma variável, e para um número primo, então é erro. Aqui está um exemplo de código com o erro:

▶ Run
#!/usr/bin/perl

my $i = 100++; # error!

Quando você executa este programa seria um erro:

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

Exatamente o mesmo não se aplica a matrizes:

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

Outros artigos