功能 ord() Perl

在Perl编程语言都有一个内置的功能 ord(). 这一功能将返回的数字,对应于指定的符号。

这里有一个例子:

▶ Run
#!/usr/bin/perl

use utf8;
use feature qw(say);

say ord('A'); # 65
say ord('1'); # 49
say ord('Ж'); # 1046

参数

如果功能 ord() 不通过任何论点、功能适用 默认的变量 $_:

▶ Run
#!/usr/bin/perl

$_ = 'a';

print ord(); # 97

标准的使用的这个功能是给她一个字符。 在这种情况下,功能将返回的数值这个符号。 如果功能 ord() 通过一串由几个字,该功能将返回 该数值的第一个字:

▶ Run
#!/usr/bin/perl

use feature qw(say);

say ord('a'); # 97
say ord('abcdef'); # 97

如果功能 ord() 通过多个参数,它将错误:

▶ Run
#!/usr/bin/perl

print ord('a', 'b', 'c');
Too many arguments for ord at script.pl line 3, near "'c')"
Execution of script.pl aborted due to compilation errors.

在这种情况下,如果你通过在 ord()是 空串,该功能将返回的数量 0:

▶ Run
#!/usr/bin/perl

print ord('');

Unicode

这里是一样的程序在其相同的符号一功能 ord() 返回一个不同的价值:

▶ Run
#!/usr/bin/perl

use feature qw(say);

say ord('Ъ');

use utf8;

say ord('Ъ');

该程序将显示:

208
1066

第一个电话 ord('Ъ') 返回的数量208. 发生这种情况由于这样的事实, ord() 把它的说法作为一个单一的角色,但作为一串两个字节 208 170 和返回一号的第一个字符这一串。

但后 use utf8; perl认为你的代码进行编码 utf8ord() 需要其参数作为一串两个字并作为一个字符串 的一个角色。 和返回的价值 1066.

官方文件

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

    ord EXPR
    ord     Returns the numeric value of the first character of EXPR. If
            EXPR is an empty string, returns 0. If EXPR is omitted, uses $_.
            (Note *character*, not byte.)

            For the reverse, see "chr". See perlunicode for more about
            Unicode.

其他文章