PERL - статьи
Функция grep так-же позволяет запонять массив значениями. Например нужно получить список расширений файлов в заданной директории:
while(){push @files, $_} #читаем директорию @test = grep { s|.*/(.*?)\.(.*)|$2| } @files; #оставляем в директории только расширения файлов
можно использовать признак четности для занесения в массив: @test1=qw(1 2 3 4 5 6 7 8 9); @evens = grep($_%2 == 1) @test1;
Или более сложное регулярное выражение для вытаскивания всех e-mail адресов из текстовой странички:
@mass=grep{s/(.*) ([\w+\-\.]+\@[\w\-\.]+\.\w{2,3})(.*)/$2/ig} split /\n/, $test;
Здесь используется укороченная запись:
@mass=grep {/pattern/} split /\n/, $test;
которая эквивалента записи из двух сторчек:
@uuu=split /\n/, $test; @mass=grep {/pattern/} @uuu;