Чтение онлайн

на главную - закладки

Жанры

Язык программирования Perl

Шохирев Михаил Васильевич

Шрифт:

use locale; # учитывать национальные установки

$lower_case = lc($text); # преобразовать к маленьким буквам

Функция lcfirst возвращает значение строкового выражения, в котором только первый символ преобразован к нижнему регистру, например:

$first_char_lower = lcfirst($text); # 'Perl' станет 'perl'

К верхнему регистру (upper case) преобразовать текст можно с помощью функции uc, которая возвращает значение символьного выражения, преобразованное к заглавным буквам.

use locale;

$upper_case = uc($text); # преобразовать к большим буквам

Функция ucfirst

возвращает значение строкового выражения, в котором только первый символ преобразован к верхнему регистру. Так, например, можно записать имя собственное с заглавной буквы:

$capitalized = ucfirst($name); # 'ларри' станет 'Ларри'

Встроенная функция crypt выполняет шифрование строки, переданной ей в качестве аргумента, используя второй аргумент в качестве "затравки" (salt) для шифрования:

# незашифрованная строка из $plain шифруется в $crypted

$crypted = crypt($plain, $salt);

Эта функция не имеет парной расшифровывающей функции и чаще всего используется для сравнения открытого текста с существующей зашифрованной строкой, как это делается в следующем примере:

if (crypt($plain, $salt) eq $crypted) {

# открытый текст совпал с зашифрованным

}

Функция quotemeta находит в символьном выражении метасимволы (о которых пойдет речь в следующей лекции) или escape-последовательности и возвращает строку, где у всех специальных символов отменено их особое значение: для этого перед каждым из них ставится символ обратной косой черты '\'.

$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.

Таблица 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 заданы так:

$format = "'%12s' агента <%03d> = '%+-10.2f'";

@list = ('Температура', 7, 36.6);

$formatted_string = sprintf($format, @list);

Поделиться:
Популярные книги

Очищение

Романов Юрий
2. Геном Дьявола
Фантастика:
ужасы и мистика
5.00
рейтинг книги
Очищение

Газлайтер. Том 1

Володин Григорий Григорьевич
1. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 1

Проводник

Кораблев Родион
2. Другая сторона
Фантастика:
боевая фантастика
рпг
7.41
рейтинг книги
Проводник

Путь России. Новая опричнина, или Почему не нужно «валить из Рашки»

Делягин Михаил Геннадьевич
Документальная литература:
публицистика
5.00
рейтинг книги
Путь России. Новая опричнина, или Почему не нужно «валить из Рашки»

Толковый словарь психиатрических терминов

Крук Инна Вадимовна
Научно-образовательная:
психология
6.25
рейтинг книги
Толковый словарь психиатрических терминов

Статьи

Белинский Виссарион Григорьевич
Документальная литература:
критика
публицистика
5.00
рейтинг книги
Статьи

Вторая Фаза

Кораблев Родион
27. Другая сторона
Фантастика:
боевая фантастика
рпг
фантастика: прочее
постапокалипсис
попаданцы
5.00
рейтинг книги
Вторая Фаза

Гендерная терапия

Малкина-Пых Ирина Германовна
Справочник практического психолога
Научно-образовательная:
психология
5.00
рейтинг книги
Гендерная терапия

Ключ для хранителя

Саринова Елена
1. Ключ для хранителя
Любовные романы:
любовно-фантастические романы
8.54
рейтинг книги
Ключ для хранителя

Во весь голос

Маяковский Владимир Владимирович
Проза:
советская классическая проза
5.00
рейтинг книги
Во весь голос

День Победы. Гексалогия

Завадский Андрей Сергеевич
Фантастика:
боевая фантастика
5.00
рейтинг книги
День Победы. Гексалогия

Неучтенный элемент. Том 7

NikL
7. Антимаг. Вне системы
Фантастика:
фэнтези
5.00
рейтинг книги
Неучтенный элемент. Том 7

Дикая карта

Сильвер Элси
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Дикая карта

Контртеррор

Валериев Игорь
6. Ермак
Фантастика:
альтернативная история
5.00
рейтинг книги
Контртеррор