Регулярки фактически должны 1 в 1 работать в preg_match/preg_replace // или m// - это match, возвращает в скалярном контексте число совпадений s/a/b/ - это preg_replace('/a/', 'b') результат не возвращает, а меняет переменную, Модификатор g - это "заменять все" т.е. нативное поведеление preg_replace т.е. $txt =~ s/a/b/g; - это $txt = preg_replace('/a/', 'b', $txt); К переменным регулярки применяется через =~ Т.е. $txt =~ /\s/ - ищет регулярку по $txt, а вот $txt = /\s/ - ищет регулярку по дефолтной переменной и возвращает результат в $txt - можно записать иначе как $txt = ($_ =~ /\s/); Ну и $1 $2 $3 и т.д. - это скобочки в последней выполненной регулярке, т.е. аналог параметра $matches sort работает аналогично php sort - внутри {} callback функция где $a и $b - пара В перле есть такая штука - дефолтная переменная $_ (и дефолтный массив @_), если что-то типа цикла по массиву не указывает куда класть каждый элемент - кладем в $_ т.е. for(@modes) проходит по элементам массива и каждый из них в $_ Внутри функции @_ - это массив параметров Например, my ($limit, @modes) = @_; - в $limit первый параметр, в @modes - все остальное, ибо массив Ну соответственно sub tries { triesn(99, @_); } - это вывзов triesn куда передаются параметры вызова tries Например, $var = shift; - shift это аналог array_shift, но так как параметра нет - используем дефольный @_, а так как мы внутри функции - это параметры функции, т.е. в $var - первый параметр функции Про эту строчку my %n = map {$_ => sprintf "$c: 1 %d $str; $c: %d 63 $str;", $_, $_+1} 2,5,8,12,18; map - это аналог array_map, возвращает новый массив в данном случае делает это в виде ассоциативного массива (в перле называется "хеш"), о чем так же говорит %n Т.е. в %n будет хеш вида 2 => строка 5 => строка и т.д. Да, в перле, в отличии от пхп, все переменные глобальные если не сказано, что они локальные (my). Т.е. там ниже есть цикл с определениием $c и вызовом функции, где это $c используется напрямую. К слову, локальность переменных можно определять не только внутри функции, но внутри любого блока (циклы, например) Вроде все... будут вопросы - спрашивай =)