The OpenNET Project
OpenSource.com.ua
Linux, UNIX,
Документация
почтой по Украине!
ASP Linux 9.2 3CD - 17 грн.
Fedora Core 1 3CD - 15 грн.
Linux XP Pro 4CD - 25 грн.
FreeBSD 5.2 Ports 8CD - 40 грн.
FreeBSD 5.2.1 3CD - 15 грн.
Gentoo 2004.0 2CD - 14 грн.
Много документации: Д. Кнут, Базы Данных, Зеркала сайтов...
 
bsd, linux, cisco, web, palm, unix, ...
CD-версия сайта
Поиск (ключи):  ПРОГРАММЫ СТАТЬИ СОВЕТЫ ФОРУМ
ССЫЛКИ НОВОСТИ (+) MAN'ы ДОКУМЕНТАЦИЯ

Полезные подпрограммы на Perl

   Корень / Программисту и web-разработчику / Perl / Полезные подпрограммы на Perl
Обработка изображений на Perl [3]
Подпрограммы для WEB [3]
Работа с сетью и IP адресами на Perl [3]

----* Симметричное шифрование блока данных на Perl.   [обсудить]
 
use Crypt::Blowfish;
use Crypt::CBC;
my $cipher = new Crypt::CBC("Секретный ключ для шифрования",'Blowfish');
my $crypted_block = $cipher->encrypt_hex($text);
my $text = $cipher->decrypt_hex($crypted_block);
$cipher->finish();
 
----* Установка русской локали в Perl скриптах.   [обсудить]
 
use POSIX qw(setlocale LC_ALL LC_CTYPE LC_NUMERIC);
use locale; # ru_RU.KOI8-R, ru_RU.CP1251, ru_RU.ISO-8859-5, ru_RU.UTF-8
my $g_setlocale_all = POSIX::setlocale( &POSIX::LC_ALL, "ru_RU.KOI8-R" );
my $g_setlocale_num = POSIX::setlocale( &POSIX::LC_NUMERIC, "C" );
 
----* Запуск ispell для проверки орфографии из скрипта   [обсудить]
 
Вывести список слов с ошибками:
  cat file.txt | ispell -d russian -l
Детальный разбор ошибок с вариантами замены:
  echo file.txt | ispell -d russian -a
Для скриптов на perl рекомендую использовать модуль Lingua::Ispell.
 
----* Чем в perl лучше шифровать данные.   [обсудить]
 
Необратимое шифрование (хэш или fingerprint):
  Модули (в порядке возрастания надежности) Digest::MD5, Digest::SHA1, Digest::HMAC_MD5, Digest::HMAC_SHA1
  Пример: use Digest::SHA1 qw(sha1_base64); 
          $hash = sha1_base64("test");

Обратимое шифрование по ключу:
  Модули: Crypt::DES, Crypt::HCE_SHA, Crypt::Blowfish + Crypt::CBC
  Пример: use Crypt::Blowfish; use Crypt::CBC;
          $cipher_handle = new Crypt::CBC($encrypt_key,'Blowfish');
          $crypted_text = $cipher_handle->encrypt_hex($text);
          $text = $cipher_handle->decrypt_hex($crypted_text);

Шифрование с использованием открытого ключа: Crypt::OpenPGP, Crypt::GPG , Crypt::PGP5.
 
----* Генерация случайной последовательности символов на Perl   [обсудить]
 
sub sys_true_rand {
   my ($num_char) = @_; # Число символов в качестве параметра.                       
   my $dev_line;
   my $rand_line = "";
   open(UR,"</dev/urandom") || die "Cam't open /dev/urandom"";
   do {
        read (UR, $dev_line, 4096);
        $dev_line =~ s/[^\w\d]//g;
        $rand_line .= $dev_line;
   } until (length($rand_line) >= $num_char);
   close(UR);
   return substr($rand_line,0, $num_char);
}
 
----* Как используя Perl разбить число на триады   Автор: whirlwind.ru  [обсудить]
 
$num = 100000000000000; 
while (num =~ s/(\d\d\d)(\d\d\d)(?!\d)/$1,$2/){}; 
 
----* Как в Perl вырезать у строки лидирующие пробелы   [обсудить]
 
  $str =~ s/^\s*([^\s]?.*)$/$1/;
  $str =~ s/^(.*[^\s])\s*$/$1/; # два regex работают быстрее, чем один более сложный
 
----* Как найти подстроку находящуюся в переменной с экранированием опасных символов.   [обсудить]
 
Для экранирования спец. символов в строке подставляемой в регуларное
 выражение, строку нужно разместить между модификаторами \Q и \E,
при этом все спецсимволы не будут интерпретироваться как операторы рег. выражения.
Например: /\Q$str\E/
Или можно использовать функцию index():
$pos = index($строка, $подстрока);
if ($pos < 0){
# Подстрока не найдена.
} else {
# В $pos - позиция первой совпавшей позиции подстроки.
}
 
----* Как работать с параметрами передаваемыми в командной строке   [обсудить]
 
use Getopt::Long;
GetOptions("prefix=s", \$prefix, "prefix-man=s", \$prefix_man);
$prefix = defined($prefix) ? $prefix : $default_install_path;
$prefix_man = defined($prefix_man) ? $prefix_man : $default_install_man;
 
----* Как преобразовать число в определенный формат   [обсудить]
 
Примеры:
$a = sprintf("%4.2f",$num);
$a = sprintf("%06X%06X",$num1,$num2);
$a = sprintf("%04i",$num);
 



Закажи себе дистрибутив! Linux почтой от ЛинуксЦентра:
 1. ASPLinux 9.2 Greenhorn LiveCD (1CD) - 99 руб.
 2. ASPLinux 9.2 Express Edition (3CD) - 290 руб.
 3. Пiнгвiнятко Лiнукс - 220 руб.
 4. ASPLinux 9.2 Deluxe Edition (11CD) - 1490 руб.
 5. ASPLinux 9.2 Standard Edition (6CD) - 790 руб.
 6. Frenzy - Live CD на базе FreeBSD (1CD) - 115 руб.
 7. Linux XP Professional. Русская версия (4CD) - 295 руб.
 8. Knoppix 3.3 RE Fall 2003 (1CD) - 85 руб.
 9. ALT Linux Master 2.2 (9CD) - 1400 руб.
 10. Журнал "Системный администратор" , 2004 год, февраль - 145 руб.

Закладки
Добавить в закладки
Created 1996-2004 by Maxim Chirkov  
ДобавитьРекламаВебмастеруЦУПГИД  
RUNNet TopList
www.tehnosetka.com