|
Автоматизация объявления переменных в Perl при использовании strict (доп. ссылка 1) |
Автор: Sokolov Alexey
[комментарии]
|
| Мне требовалось переписать мой же проект, написанный на Perl, с использованием "use strict".
Было лень объявлять все переменные вручную, т.к. их было чертовски много, посему я решил сей процесс
автоматизировать. Это конечно не совсем правильно, однако я всё равно весь результат потом тщательно проанализировал.
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Пример использования Tie для ассоциирования функции с хешем. |
Автор: lw
[обсудить]
|
| use Tie::Sub;
tie my %sub, 'Tie::Sub', sub{sprintf '%04d', shift};
print "See $sub{4} digits.";
|
|
|
|
|
Как узнать тип ссылочной переменной в Perl |
[комментарии]
|
| Иногда нужно узнать на массив, хэш или скаляр указывает ссылка.
ref возвращает строковый идентификатор типа ссылки (SCALAR, ARRAY, HASH, CODE, REF, GLOB, LVALUE)
или пустое значение для обычных переменных. Например:
if (ref($r) eq "HASH") {
print "Хэш\n";
} elsif (ref($r) eq "ARRAY"){
print "Массив\n";
}
|
|
|
|
|
Манипулирование файловыми хэндлерами в Perl (доп. ссылка 1) |
[обсудить]
|
| Пример хранение дескрипторов в хэше:
... [Слишком большой объем текста. Скрыт. Для просмотра см. продолжение]
|
|
|
|
|
Как в Perl оптимально заменить символы в строке или разбить строку на части |
[комментарии]
|
| При работе с большими строками нужно избегать внутреннего копирования строк,
которое происходит при использоании регулярных выражений или оператора split.
Для разбиеная строки вида "small_begin:big_end" на две подстроки используем:
my $pos=index($str, ':');
my $begin_str = substr($str, 0, $pos,"");
# в $str остается только big_end часть, в $begin_str - "small_begin:"
Соответсвенно, для замены символов удобно использовать:
substr(строка, начало замены, число заменяемых символов, блок на который заменяем);
|
|
|
|
|
|
Как написать обработчик сигнала на Perl |
[обсудить]
|
| sub pipe_sig{
return 0;
};
$SIG{'PIPE'} = \&pipe_sig;
|
|
|
|
|
|