Replies (3)

  • @k-mx, Кстати, наудивление важная правка. $&, $` и $' — специальные переменные используемые в регулярных выражениях. В старых версиях интерпретатора (до 5.18), использование любой из этих переменных в коде, выставляло глобальный флаг sawampersand, который заставлял при запуске любого регвыра, сохранять в $& — то что удовлетворяет регвыру, в $` — часть строки до совпадения и в $' — часть после совпадения. Т.е. ты хочешь проверить что в строке есть буква 'ы', а двиг регулярок копирует 'ы', часть строки до 'ы' и часть после. Получаем падение производительности и расход памяти при вычислении регвыров для всего приложения. Если sawampersand выставлен, то снять его нельзя :)
    В 5.18 Perl научился выставлять флаг для конкретной переменной. Т.е. если в коде встретился $`, то для всех регвыров будет скопировано то что идёт до совпадения. В 5.20 данная проблема решена с помощью copy-on-write
  • @k-mx, Странно, это ведь github? Но github запустился в 2008 году, когда на Perl уже никто не писал.
  • @Strephil, В 2008 не писал? Ну может быть. Главное что в 2020 пишут