Здравствуйте, Sharov, Вы писали:
A>>В Perl стандартный способ сделать trim, это код:
A>>A>>$str =~ s/^\s+//;
A>>$str =~ s/\s+$//;
A>>
A>>И он не спотыкается на указанной в начальном сообщении строке.
S>Почему? Движок, стандарт другой?
Не знаю. Могу только предположить, что оптимизация именно этих выражений, как часто используемых. Точнее второго: движок сразу понимает, что смотреть нужно конце, а не проверять, тянется ли найденное совпадение до конца.
Вот это уже не будет так работать:
$str =~ s/(a|\s)+$//;
А это будет:
$str =~ s/[a\s]+$//;