A7 A6 A6 A6 A4
sub cut2fmt {
my((s>positions) = @>_, my $template = my $lastpos = 1, foreach $place(positions) {
Stemplate = A ($place - $lastpos) ";
Slastpos = $place;
}
Stemplate = "A*';
return $template; }
$fmt = cut2fmt(8, 14, 20, 26, 30); print "$fmt\n", A7 A6 A6 A6 A4 A*
Возможности функции unpack выходят далеко за пределы обычной обработки текста. Она также обеспечивает преобразование между текстовыми и двоичными данными.
> Смотри также---------------------------------------------------------------------------------------------
Описание функций unpack и substг в perlfunc(l); подпрограмма cut2fmt из рецепта 1.18. Применение unpack для двоичных данных демонстрируется в рецепте 8.18.
1.2. Выбор значения по умолчанию
Проблема
Требуется закрепить за скалярной переменной значение по умолчанию, но лишь в том случае, если оно не было задано ранее. Довольно часто требуется, чтобы стандартное значение переменной жестко кодировалось в программе, по его можно было переопределить из командной строки или переменной окружения.
Решение
Воспользуйтесь оператором | | или | | =, работающим как со строками, так и с числами:
U Использовать $Ь, если значение $Ь истинно, и $с в противном случае $а = $Ь || $с,
и Присвоить $х значение $у, но лишь в том случае, U если $х не является истинной $х ||= $у,
Если ваша переменная может принимать значения 0 или "0", воспользуйтесь функцией defined:
# Использовать $Ь, если значение $Ь определено, и $с в противном случае $а = defmed($b) ? $b $c,
Комментарий
Главное отличие между этими двумя приемами (defined и | |) состоит, прежде всего, в том, что именно проверяется — определенность или истинность. В мире Perl три определенных значения являются ложными: 0, "0" и "". Если ваша переменная содержит одну из этих величин, но вы не хотите изменять ее, 11 не подой-
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий