Fungsi ord() di Perl

Dalam bahasa pemrograman Perl memiliki fungsi built-in ord(). Fungsi ini mengembalikan jumlah yang sesuai dengan yang ditentukan simbol.

Berikut ini sebuah contoh:

▶ Run
#!/usr/bin/perl

use utf8;
use feature qw(say);

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

Argumen

Jika fungsi ord() tidak lulus argumen, fungsi bekerja dengan default variabel $_:

▶ Run
#!/usr/bin/perl

$_ = 'a';

print ord(); # 97

Standar penggunaan fungsi ini adalah untuk memberikan tepat satu karakter. Dalam hal ini, fungsi akan mengembalikan nilai numerik dari simbol ini. Jika fungsi ord() untuk melewati sebuah string yang terdiri dari beberapa karakter, fungsi akan mengembalikan nilai numerik dari karakter pertama:

▶ Run
#!/usr/bin/perl

use feature qw(say);

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

Jika fungsi ord() lulus lebih dari satu argumen, maka akan error:

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

Dalam kasus jika anda lulus dalam ord() adalah string kosong, fungsinya akan kembali jumlah 0:

▶ Run
#!/usr/bin/perl

print ord('');

Unicode

Berikut ini adalah contoh program yang sama simbol fungsi ord() mengembalikan nilai yang berbeda:

▶ Run
#!/usr/bin/perl

use feature qw(say);

say ord('Ъ');

use utf8;

say ord('Ъ');

Program ini akan menampilkan:

208
1066

Panggilan pertama ord('Ъ') kembali nomor 208. Hal ini terjadi karena fakta bahwa ord() mengambil argumen sebagai karakter tunggal, tetapi sebagai string dari dua byte 208 170 dan kembali angka untuk karakter pertama dari string ini.

Tapi setelah use utf8; perl berpikir anda kode dikodekan utf8 dan ord() mengambil argumen string dari dua karakter dan string karakter tunggal. Dan mengembalikan nilai 1066.

Dokumentasi resmi

Berikut ini adalah output dari perintah 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.

Artikel lainnya