Язык программирования Perl | страница 61
>
$string_with_meta = '\n \032 \x00 text \t \v "';
$quoted = quotemeta($string_with_meta);
# в $quoted будет '\\n\ \\032\ \\x00\ text\ \\t\ \\v\ \"'
В Perl имеется несколько функций преобразования строкового представления числа в числовое значение. Функция hex() возвращает десятичное значение выражения, представленного как шестнадцатиричное число в виде строки:
>
$hexadecimal_as_string = '0x2F';
$decimal_number = hex($hexadecimal_as_string); # будет 47
Функция oct() возвращает десятичное значение строкового выражения, представляющего запись восьмеричного числа:
>
$octal_as_string = '0777';
$decimal_number = oct($octal_as_string); # будет 511
С помощью oct() можно также преобразовать к десятичному значению двоичное или шестнадцатиричное число, записанное в виде строки:
>
$binary_as_string = '0b011001';
$decimal_number = oct($binary_as_string); # будет 25
$hexadecimal_as_string = '0x19';
$decimal_number = oct($hexadecimal_as_string); # будет 25
Ну а строку, содержащую число в десятичной системе счисления, можно преобразовать к числу, поместив ее в числовой контекст:
>
$pi_as_string = '3.141592653'; # число Пи в виде строки
$circle_length = 2 * $pi_as_string * $radius;
Функция sprintf() возвращает строку, которая сформирована в соответствии с правилами форматирования, заимствованными из языка C: на основе формата преобразования, заданного первым аргументом, в результирующую строку подставляются отформатированные значения из списка остальных аргументов функции. В общем виде вызов этой функции выглядит так: sprintf(ФОРМАТ, СПИСОК АРГУМЕНТОВ). В формате преобразования располагается любой текст, в котором могут присутствовать указания преобразования. Каждое указание начинается с символа процента (%) и заканчивается символом, определяющим преобразование. Основные преобразования приведены в таблице 7.2.
Преобразование | Синоним | Результат преобразования | Мнемоника символа |
---|---|---|---|
%% | Знак процента | % | |
%c | Символ с указанным номером в кодовой таблице | Character | |
%s | Строка | String | |
%d | %i | Целое со знаком в десятичном виде | Decimal, Integer |
%u | Целое без знака в десятичном виде | Unsigned | |
%b | Целое без знака в двоичном виде | Binary | |
%o | Целое без знака в восьмеричном виде | Octal | |
%x | %X | Целое без знака в шестнадцатеричном виде | heXadecimal |
%e | %E | Целое с плавающей точкой в научной нотации | Exponential |
%f | %F | Число с плавающей точкой в виде десятичной дроби |