Interprets EXPR as an octal string and returns the corresponding value. (If EXPR happens to start off with 0x
, interprets it as a hex string instead.) The following will handle decimal, octal, and hex in the standard Perl or C notation:
$val = oct($val) if $val =~ /^0/;
If EXPR is omitted, uses $_
. This function is commonly used when a string such as 644
needs to be converted into a file mode, for example. (Although perl will automatically convert strings into numbers as needed, this automatic conversion assumes base 10.)