The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

Переменные в Perl

   Корень / Программисту и web-разработчику / Perl / Переменные в Perl

----* Автоматизация объявления переменных в 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   [обсудить]
 
$ch="M";
print sprintf("%2x", ord($ch));
 
----* Как написать обработчик сигнала на Perl   [обсудить]
 
sub pipe_sig{
    return 0;
};
$SIG{'PIPE'} = \&pipe_sig;
 
----* Как определить число в переменной или строка   [обсудить]
 
if (( ~$scalar & $scalar ) eq '0' ){ число }
 
----* Как определить константу в Perl   [комментарии]
 
use constant TEST => 1;
$a=TEST;
 

 Версия для печати




  Закладки на сайте
  Проследить за страницей
Created 1996-2017 by Maxim Chirkov  
ДобавитьРекламаВебмастеруГИД  
Hosting by Ihor TopList