Split
Если необходимо разделить данные из STDIN по нужному разделителю, то можно воспользоваться локализацией $/:
sub example_local{ local $/ = undef; @mass= split /pattern/, <>; return 1; } print scalar(@mass);
Можно разделять данные из файла и так:
undef $/; @res=split /pattern/, <F>;
что эквивалентно:
while (<F>) {push @asdf, split}
После split можно ставить вместо запятой и стрелочку:
@mass = split /(\d){4}/ => $file;
В функции сплит можно воспользоваться макисмальным квантификатором *, который в том числе и о символов, позволит разделить строку на символы, которых там нет(в силу того, что * это 0 и более символов), т.е. посимвольно:
@ruru = split /\001*/ => "lalalalalala"; #массив @ruru будет содержать элементы по одной букве.
Если строка состоит из нескольких строк, то можно поставить разделителем и символ начала новой строки:
$str = "asdf\nghjk\nqwer\n"; @lines = split /^/ => $str;
Вобщем, в split можно вставлять любой поиск по шаблону.