oct EXPR
oct

將 EXPR 解釋為八進位字串,並傳回對應的值。八進位字串包含八進位數字,且從 Perl 5.33.5 開始,可以選擇加上 0oo 前綴。每個八進位數字前面都可以加上一個底線,這個底線會被忽略。(如果 EXPR 剛好以 0xx 開頭,則會將其解釋為十六進位字串。如果 EXPR 以 0bb 開頭,則會將其解釋為二進位字串。在所有這三種情況下,開頭的空白都會被忽略。)以下範例將以標準 Perl 符號處理十進位、二進位、八進位和十六進位

$val = oct($val) if $val =~ /^0/;

如果省略 EXPR,則會使用 $_。若要反向操作(產生八進位數字),請使用 sprintfprintf

my $dec_perms = (stat("filename"))[2] & 07777;
my $oct_perm_str = sprintf "%o", $perms;

oct 函式通常用於將字串(例如 644)轉換為檔案模式。雖然 Perl 會自動視需要將字串轉換為數字,但這個自動轉換假設為 10 進位。

開頭的空白會在不發出警告的情況下被忽略,任何尾隨的非數字(例如小數點)也會被忽略(oct 只處理非負整數,不處理負整數或浮點數)。