Язык программирования Perl
Шрифт:
Функция lcfirst возвращает значение строкового выражения, в котором только первый символ преобразован к нижнему регистру, например:
К верхнему регистру (upper case) преобразовать текст можно с помощью функции uc, которая возвращает значение символьного выражения, преобразованное к заглавным буквам.
Функция ucfirst
Встроенная функция crypt выполняет шифрование строки, переданной ей в качестве аргумента, используя второй аргумент в качестве "затравки" (salt) для шифрования:
Эта функция не имеет парной расшифровывающей функции и чаще всего используется для сравнения открытого текста с существующей зашифрованной строкой, как это делается в следующем примере:
Функция quotemeta находит в символьном выражении метасимволы (о которых пойдет речь в следующей лекции) или escape-последовательности и возвращает строку, где у всех специальных символов отменено их особое значение: для этого перед каждым из них ставится символ обратной косой черты '\'.
В Perl имеется несколько функций преобразования строкового представления числа в числовое значение. Функция hex возвращает десятичное значение выражения, представленного как шестнадцатиричное число в виде строки:
Функция oct возвращает десятичное значение строкового выражения, представляющего запись восьмеричного числа:
С помощью oct можно также преобразовать к десятичному значению двоичное или шестнадцатиричное число, записанное в виде строки:
Ну а строку, содержащую число в десятичной системе счисления, можно преобразовать к числу, поместив ее в числовой контекст:
Функция sprintf возвращает строку, которая сформирована в соответствии с правилами форматирования, заимствованными из языка C: на основе формата преобразования, заданного первым аргументом, в результирующую строку подставляются отформатированные значения из списка остальных аргументов функции. В общем виде вызов этой функции выглядит так: sprintf(ФОРМАТ, СПИСОК АРГУМЕНТОВ). В формате преобразования располагается любой текст, в котором могут присутствовать указания преобразования. Каждое указание начинается с символа процента (%) и заканчивается символом, определяющим преобразование. Основные преобразования приведены в таблице 7.2.
Таблица 7.2. Преобразования в формате sprintf
Преобразование | Синоним | Результат преобразования | Мнемоника символа |
---|---|---|---|
%% | Знак процента | % | |
%c | Символ
| Character | |
%s | Строка | String | |
%d | %i | Целое со знаком в десятичном виде | Decimal, Integer |
%u | Целое без знака в десятичном виде | Unsigned | |
%b | Целое без знака в двоичном виде | Binary | |
%o | Целое без знака в восьмеричном виде | Octal | |
%x | %X | Целое без знака в шестнадцатеричном виде | heXadecimal |
%e | %E | Целое с плавающей точкой в научной нотации | Exponential |
%f | %F | Число с плавающей точкой в виде десятичной дроби | Float |
%g | %G | Число с плавающей точкой в формате %e или %f |
Между знаком процента и символом в указании преобразования можно использовать дополнительные параметры преобразования, основные из которых приведены в таблице 7.3.
Таблица 7.3. Параметры преобразования в формате sprintf
Параметр | Выполняемое форматирование | Пример параметров sprintf | Результат форматирования |
---|---|---|---|
число | Минимальная ширина поля вывода для результата преобразования; если она не задана или меньше ширины значения, то устанавливается равной ширине выводимого значения | '<%5s>', 25 | < 25> |
.число | Количество цифр после десятичной точки в дробном числе | '<%.5f>', 0.25 | <0.25000> |
Максимальная ширина поля вывода, до которой усекается длинная строка | '<%.5s>', '5' x 10 | <55555> | |
пробел | Вывод пробела перед положительным числом | '<% d>', 25 | '< 25>' |
+ | Вывод плюса перед положительным числом | '<%+d>', 25 | '<+25>' |
0 | Вывод нулей, а не пробелов при выравнивании по правому краю поля | '<%05s>', 25 | '<00025>' |
– | Выравнивание значения по левому краю поля | <%-5s>, 25 | '<25 >' |
# | Вывод перед восьмеричным числом 0, перед шестнадцатеричным числом 0x, перед двоичным числом 0b | '<%#x>',25 | '<0x19>' |
При выполнении sprintf к очередному значению из списка аргументов применяется преобразование, результат которого вставляется в форматирующую строку на место указания преобразования. Например, если шаблон форматирования и аргументы функции sprintf заданы так: