Я только что установил Perl 5.18, и я получаю много предупреждений, подобных этому,
given is experimental at .\[...].pl line [...].
when is experimental at .\[...].pl line [...].
Smartmatch is experimental at C:/strawberry/perl/site/lib/[...] line [...].
Взглянув на эти предупреждения, о которых я никогда не слышал нигде, я мог найти это только в двух местах,
- perldelta для 5.18, который действительно упоминается только в том случае, если эта функция была понижена до экспериментальной?
- это сообщение nntp.perl.org
Perl Delta по-прежнему делает все возможное, чтобы упомянуть о том, что происходит с этими функциями, на полпути вниз, погруженным в стручок,
Интеллектуальное совпадение, добавленное в v5.10.0 и значительно переработанное в версии 5.10.1, является регулярной жалобой. Хотя есть несколько способов, в которых это полезно, он также оказался проблематичным и запутанным как для пользователей, так и для разработчиков Perl. Был предложен ряд предложений о том, как наилучшим образом решить эту проблему. Понятно, что smartmatch почти наверняка либо изменится, либо уйдет в будущем. Опираясь на его текущее поведение не рекомендуется. Предупреждения будут теперь выдаваться, когда парсер увидит ~~, данный или когда.
Я смущен тем, как можно было потянуть самые значительные изменения в Perl за последние 10 лет. Я начал использовать given
, when
и smartmatch
повсюду. Есть ли больше информации об этих фьючерсах? Как кто-то находит их "запутанными"? Как эти функции могут измениться? Есть ли план для реализации этих функций с помощью модуля?