操作者 -- Perl

双减算被用在Perl值减少的一个变量之一。

例如:

▶ Run
#!/usr/bin/perl

my $i = 100;

$i--;

print $i;

该程序将显示的数 99.

条目形式

有两种形式的记录:你可以指定的操作者之后的变量(后缀符号)或前该变量(前缀表示):

$i--;
--$i;

如果该命令在一个线之间没有差别前缀和后缀符号。 是有区别的唯如果操作者 -- 被用于作为团队的一部分。 如果 -- 位于前面的变量 变量值将增加执行之前的剩余的命令。 如果 -- 后的变量,然后 变量值将增加之后执行剩余的命令。

这里就是一个例子。

这一程序显示100号和99:

▶ Run
#!/usr/bin/perl

use feature qw(say);

my $i = 100;

say $i--;
say $i;

但这个程序将显示99号两次:

▶ Run
#!/usr/bin/perl

use feature qw(say);

my $i = 100;

say --$i;
say $i;

--

操作员 ++ ,有一个特殊的魔术时应用于可变这是一串。

操作者 -- 因此没有魔法。 串被强迫数量和从这个数字减去一个。

这里就是一个例子。 该计划显示的数-1

▶ Run
#!/usr/bin/perl

my $str = 'a1';

$str--;

print $str;

这里是一些例子,这将使操作者 -- 的串在一个变量:

'a' -> -1
'100ABC' -> 99
'0100ABC' -> 99

滥用

操作者 -- 仅仅可以用于变量。 如果你试图使用 -- 是不可变的,并且对于一个简单的数量, 会产生一种错误。 这里是一个例子码的错误:

▶ Run
#!/usr/bin/perl

my $i = 100--; # error!

当你执行这个程序,它将错误:

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

同样,它不能被应用于数组:

▶ Run
#!/usr/bin/perl

my @arr = (1, 2, 3);

@arr--; # error
Can't modify private array in postdecrement (--) at script.pl line 5, near "@arr--"
Execution of script.pl aborted due to compilation errors.

和哈希:

▶ Run
#!/usr/bin/perl

my %h = (
    a => 1,
);

%h--; # error
Can't modify private hash in postdecrement (--) at script.pl line 7, near "%h--"
Execution of script.pl aborted due to compilation errors.

其他文章