Связь и интернет Архив Программирование
   
Сделать стартовойСделать закладку            
   ПОИСК  
   
Главная / Perl / Краткий курс Perl в примерах /
8  Perl
8  PHP
8  JavaScript
8  HTML
8  DHTML
8  XML
8  CSS
8  C / C++
8  Pascal и Delphi
8  Турбо Ассемблер
8  MySQL
8  CASE-технологии
8  Алгоритмы
8  Python
8  Обратная связь
8  Гостевая книга
Новости о мире


Интересные примеры на Perl - Программирование от RIN.RU
Интересные примеры на Perl

Эта подборка наглядно демонстрирует, как в Perl одна-две строчки кода могут сделать больше, чем десять строк в каком-нибудь другом языке программирования.


1. Проверить, существует ли элемент (первый аргумент функции, передается по значению) в массиве (второй аргумент функции, передается по ссылке).

sub inarr {
grep {$_ == $_[0]} @{$_[1]};
}


2. Удалить из массива @arr элементы, которые есть в массиве @skip.

my @rslt = grep {
my $t = $_;
! grep { $_ == $t } @skip;
} @arr;


3. Скрипт замены строк в тексте

#!/usr/bin/perl
while(<>) {
chomp;
last if($_ eq "==end==");
/^([^=]*)=(.*)$/ and $r{$1} = $2;
}
$d = join '', <>;
$d =~ s/$_/$r{$_}/g for (keys %r);
print $d;


4. Вывести список имен файлов и каталогов в заданной директории, отсортированный по дате последнего доступа. Обычно глобы сортируют список по имени файлов и каталогов. Для сортировки по дате последнего изменения, заменить цифру 8 на 9.

print join "\n", sort {(stat $a)[8] <=> (stat $b)[8]} glob "./*";


5. Удалить повторяющиеся элементы в массиве.

my %cnt; # будет содержать число повторений элементов
@links = grep { ! $cnt{$_}++; } @links;


6. Перемешать элементы массива

for(0..$#links) {
my $j = int rand() * scalar @links;
($links[$_], $links[$j]) = ($links[$j], $links[$_]);
}


7. Выбрать случайный элемент в массиве можно как минимум двумя способами. Можно перемешать элементы, как в предыдущем примере, и выбрать нулевой, а можно в одну строчку:

$rand = $links[int rand() * scalar @links];


8. Аналог PHP функции urlencode.

$url =~ s/([^a-zA-Z0-9\&\?\:\;\/\=\.\,\#\-\_]{1})/sprintf("%%%02x",ord($1))/eg;




 8  Комментарии к статье  8 8  Обсудить в чате

 
  
  
    Copyright ©  RIN 2003 - 2004      * Обратная связь