Михаил Шохирев - Язык программирования Perl Страница 20

Тут можно читать бесплатно Михаил Шохирев - Язык программирования Perl. Жанр: Компьютеры и Интернет / Прочая околокомпьтерная литература, год -. Так же Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте FullBooks.club (Фулбукс) или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
Михаил Шохирев - Язык программирования Perl

Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних просмотр данного контента СТРОГО ЗАПРЕЩЕН! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту pbn.book@yandex.ru для удаления материала


Михаил Шохирев - Язык программирования Perl краткое содержание

Прочтите описание перед тем, как прочитать онлайн книгу «Михаил Шохирев - Язык программирования Perl» бесплатно полную версию:
Курс знакомит с языком программирования Perl, с его принципами, основными возможностями и особенностями в объёме, достаточном, чтобы начать разрабатывать прикладные и системные задачи, включая программирование для сети Интернет.Расчитанный на полугодовое изучение, курс является достаточно подробным введением в язык программирования Perl. Описывается уникальная культура Perl и особенности, отличающие его от других языков программирования и во многом обусловившие его популярность. Рассматриваются основные средства программирования на языке Perl версии 5.8. Разбираются богатые возможности языка для создания самых разных приложений, а также особый стиль программирования на Perl. Курс ориентирован на студентов, начинающих программистов или разработчиков, применяющих другие языки и желающих писать прикладные или системные программы на Perl.

Михаил Шохирев - Язык программирования Perl читать онлайн бесплатно

Михаил Шохирев - Язык программирования Perl - читать книгу онлайн бесплатно, автор Михаил Шохирев

В 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);

то после выполнения приведенного предложения в переменной $formatted_string будет содержаться такая отформатированная строка:

' Температура' агента <007> = '+36.60 '

Преобразования в формате этого примера обозначают следующее:

[x]. %12s - преобразовать аргумент в строку (string) и поместить в поле шириной в 12 символов с выравниванием вправо (т. к. ширина поля положительная);

[x]. %03d - преобразовать аргумент в десятичное целое (decimal) и поместить в поле шириной в 3 цифры с ведущими нулями (т. к. ширина поля задана с ведущим нулем) и выравниванием вправо (поскольку ширина положительная);

[x]. %+-10.2f - преобразовать аргумент в дробное число (float) с явным знаком (т.к. указан +) и поместить в поле шириной в 10 цифр, из которых 2 отводятся на дробную часть, с выравниванием влево (поскольку ширина поля отрицательная).

Функция sprintf() часто применяется для округления чисел - например, до трех знаков в дробной части:

$rounded = sprintf("%.3f", 7/3); # в $rounded будет 2.333

Полное описание форматов с самыми разными примерами их употребления можно прочитать в официальной документации:

perldoc -f sprintf

В дополнение к функции sprintf() имеется функция printf(), которая использует тот же самый формат преобразования, но выводит отформатированный результат в указанный выходной поток.

Иногда требуется работать не со строками и словами текста, а с его отдельными символами. В Perl есть необходимые средства работы с символами, хотя в нем нет специального типа данных, представляющих один символ, подобно типу char в других языках. Один символ из строки можно скопировать функцией substr($string, $index, 1).

С помощью заимствованных из языка Pascal функций ord() и chr() выполняются преобразования символа (а точнее односимвольной строки) в его ASCII-код и наоборот:

$code = ord($char); # ord('M') вернет число 77 $char = chr($code); # chr(77) вернет строку 'M' # синоним: $char = sprintf("%c", $code);

Разбить строку на отдельные символы и поместить их в массив можно с помощью уже знакомой функции split() с пустой строкой в качестве разделителя:

@array_of_char = split('', $string);

С помощью списков и нескольких вызовов функции substr() можно поменять в строке местами символы с указанными индексами, например, 1 и 11:

$s = 'кОт видел кИта'; (substr($s, 1, 1), substr($s, 11, 1)) = (substr($s, 11, 1), substr($s, 1, 1)); # в $s будет 'кИт видел кОта'

Известная по лекции о списках функция reverse() в скалярном контексте возвращает значение текстового выражения, в котором символы переставлены в обратном порядке, например:

$palindrom = 'А РОЗА УПАЛА НА ЛАПУ АЗОРА'; $backwards = reverse($palindrom); # в $backwards будет 'АРОЗА УПАЛ АН АЛАПУ АЗОР А'

Перейти на страницу:
Вы автор?
Жалоба
Все книги на сайте размещаются его пользователями. Приносим свои глубочайшие извинения, если Ваша книга была опубликована без Вашего на то согласия.
Напишите нам, и мы в срочном порядке примем меры.
Комментарии / Отзывы
    Ничего не найдено.