功能 chop() Perl

在Perl编程语言都有一个内置的功能 chop(). 你可以使用这一功能工作时用弦。 在最简单的情况下,功能 chop() 删除最后一个字中的一个变量 这是一个通过了论据的功能。

这里有一个例子:

▶ Run
#!/usr/bin/perl

my $string = 'ASDF';

chop($string);

print "'$string'";

这个程序将显示该文本 'ASD'.

参数

如果功能 chop 没有给出参数、功能适用 的默认可变 $_:

▶ Run
#!/usr/bin/perl

$_ = 123;

chop();

print "'$_'";

在这种情况下,如果可变 $_undef 和使用 use warnings;,会警告:

▶ Run
#!/usr/bin/perl

use strict;
use warnings;

chop();
Use of uninitialized value $_ in scalar chop at script.pl line 6.

在功能 chop() ,可以通过标量阵列、哈希。 在这种情况下的散列 该功能将只适用价值观的钥匙的钥匙自己不会改变。

该论据的功能 chop() ,必须始终是可变的。 如果 以尝试通过这个函数的一个字符串中,它将错误和程序的执行 将停止:

▶ Run
#!/usr/bin/perl

chop('ASDF'); # Error!
Can't modify constant item in chop at script.pl line 3, near "'ASDF')"
Execution of script.pl aborted due to compilation errors.

回值

功能 chop() 总是返回的一串。 它可以是空的 串 '',或一串组成的一个字符。

这是一个实例的情况,当 chop() 返回的一个空string:

▶ Run
#!/usr/bin/perl

use Data::Dumper;

my $var = '';

warn Dumper chop($var);
warn Dumper $var;

这里是一个例子更为频繁的情况是当 chop() 返回串的一个 符号。 该功能将返回的角色,这是减少来自行:

▶ Run
#!/usr/bin/perl

use Data::Dumper;

my $var = 'asdf';

warn Dumper chop($var);
warn Dumper $var;

这个程序将显示:

$VAR1 = 'f';
$VAR1 = 'asd';

这里是另一个实例的情况时 chop() 返回一个单一的角色。

▶ Run
#!/usr/bin/perl

use Data::Dumper;

my @arr = qw(abc def ghi);

warn Dumper chop(@arr);
warn Dumper \@arr;

输出的程序:

$VAR1 = 'i';
$VAR1 = [
          'ab',
          'de',
          'gh'
        ];

功能 chop() 切断的最后一个字符从所有的元件阵列,但返回 唯一的角色,这是切的最后一次。

官方文件

这里是输出的命令 perldoc -f chop:

       chop VARIABLE
       chop( LIST )
       chop    Chops off the last character of a string and returns the
               character chopped.  It is much more efficient than "s/.$//s"
               because it neither scans nor copies the string.  If VARIABLE is
               omitted, chops $_.  If VARIABLE is a hash, it chops the hash's
               values, but not its keys.

               You can actually chop anything that's an lvalue, including an
               assignment.

               If you chop a list, each element is chopped.  Only the value of
               the last "chop" is returned.

               Note that "chop" returns the last character.  To return all but
               the last character, use "substr($string, 0, -1)".

               See also "chomp".

相关的主题

其他文章