Perl oct Function
This short Perl oct Tutorial will show you how to use this function in your scripts. This function is used to interpret an expression as an octal string and to return the corresponding decimal value. To get the reverse, i.e. to produce a number in octal you can use the sprintf or printf functions.
An octal number is preceded by a 0 and contains digits from 0 to 7 only. By calling the oct function, there are two particular cases here – the expression will be interpreted as a hexadecimal string if begins wit 0x and as a binary string if it begins with 0b. If you want to convert numbers in or from a binary, octal or hexadecimal format you need to write them as literals, otherwise no automatic conversion will take place. The leading white spaces from the expression string will be omitted.
The syntax of the Perl oct function looks like this:
After conversion, the Perl oct
function returns the corresponding decimal value of the EXPR parameter as a string. The string returned by this function can be used as a number because Perl automatically converts the strings to numbers in a numerical context, by using the decimal base.
If the expression is omitted, the $_ is used instead.
Please notice that the Perl oct function can convert a binary, octal or hexadecimal number into a decimal format, whereas the hex function converts only hexadecimal numbers, with or without the prepended 0x.
Here’re a few examples of how you can utilize this function:
print oct(77), "\n"; # it prints 63
print oct('77'), "\n"; # it prints 63
print oct('077'), "\n"; # it prints 63
print oct(077), "\n"; # it prints 51
# because 077 is an octal number, first it will
# be converted to a decimal number, i.e. 63 and next
# oct(63) means 51
print oct('2382'), "\n"; # it prints 19
# this statement will throw a warning error
# because 8 is not a digit in the octal base; however,
# the rest of digits starting with 8 will be ignored and the oct
# function will convert the octal number 23 in decimal
print oct('0x77'), "\n"; # it prints 119
# ' 0x77' is considered the hexadecimal number 77;
# converted in decimal this means 119;
# the leading spaces are ignored
print oct('0b101'), "\n"; # it prints 5
# '0b101' is considered the binary number 101;
# converted in decimal this means 5
|Octal File Permisions and the Perl oct function |
You can change the permissions of a list of files by using the Perl chmod
function. This function expects a file permission as its first argument and that needs to be in octal. You can either provide a leading 0
for the value of the argument or use the Perl oct
For example, if you want to assign the 644 permission to a file (which means that owner can read and write and other people only read) you can use any of the two following lines of code:
is the handle of the appropriate file. Using the oct
function, you don’t need to prepend the permission number with a 0
In the following, I remind you how to use the octal syntax notation in connection with the file permission.
The first digit of the octal number 664 is for the owner, the second for the group and the last for others. The permission could be r (for reading), w (for writing), x (for executing) and – (no permission).
Each digit of the permission number can have one of the following values:
|value || 0 || 1 || 2 || 3 || 4 || 5 || 6 || 7 |
|permission || --- || --x || -w- || -wx || r-- || r-x || rw- || rwx |
So 664 means the following permissions:
rw-rw-r-- (the owner and the group can read and write, the other people only read)
Please click here to download the Perl oct script with all the above examples included.
Table of Contents:
A Perl Script
Perl Data Types
Built-in Perl Functions
Functions by Category
Functions in alphabetical order
return from Perl oct function to Perl Basics
Would you like to create your own website like this one?
Hit the Alarm Clock!