sub mode_to_string { my ($mode) = @_; my @str_mode; for (0 .. 2) { unshift @str_mode, $mode & 1 ? 'x':'-'; unshift @str_mode, $mode & 2 ? 'w':'-'; unshift @str_mode, $mode & 4 ? 'r':'-'; $mode = $mode >> 3; } return join '', @str_mode; } print mode_to_string(0647);