Не пытайтесь распространить это любопытное
Не пытайтесь распространить это любопытное применение 11 и 11 = со скалярных величин на массивы и хэши. У вас ничего не выйдет, потому что левый операнд интерпретируется в скалярном контексте. Приходится делать что-нибудь подобное:
@а = @b unless @а; # Копировать, если массив пуст
@а = @Ь ? @Ь : @с; # Присвоить @Ь, если он не пуст, иначе @с
> Смотри также---------------------------------------------------------------------------------------------
Описание оператора | | врег1ор(1); описание функций defined и exists вреИ-func{\).
1.3. Перестановка значений
без использования временных переменных
Проблема
Требуется поменять значения двух скалярных переменных, но вы не хотите использовать временную переменную.
34 Глава 1 • Строки
РешениеВоспользуйтесь присваиванием по списку:
($VAR1, $VAR2) = ($VAR2, $VAR1),
Комментарий
В большинстве языков программирования перестановка значений двух переменных требует промежуточного присваивания:
$terap = $a, $а = $Ь, $b = Sterap
В Perl дело обстоит иначе Язык следит за обеими сторонами присваивания и за тем, чтобы ни одно значение не было случайно стерто. Это позволяет избавиться от временных переменных:
$а = alpha
$b = omega ,
($а $b) = ($Ь $а), # Первый становится последним - и наоборот
Подобным способом можно поменять местами сразу несколько переменных:
($alpha $beta, $production) = qw(January March August)
# beta перемещается в alpha,
# production - в beta
# alpha - в production
($alpha, $beta, $production) = ($beta, Sproduction, $alpha),
После завершения этого фрагмента значения переменных $alpha, $beta и
$production будут равны соответственно March , August и January .
> Смотри также---------------------------------------------------------------------------------------------
Раздел «List value constructors» perlop(i).
1.4. Преобразование между символами и ASCII-кодами
Проблема
Требуется вывести код, соответствующий некоторому символу в кодировке ASCII, или наоборот — символ по ASCII-коду.
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий