Прежде всего, Switch не устарел. Это включение в ядро устарело в 5.12. Все это означает, что хотя Switch был включен в Perl 5.8 и 5.10, он не включен в Perl 5.14 и новее. Это НЕ означает, что люди должны прекратить использование модуля. Модуль все еще может быть установлен из CPAN отдельно от perl
.
Имейте в виду, многие, в том числе и я, советуют другим избегать использования Switch, но это не зависит от его устаревания от ядра, и оно намного раньше 5.12. Использование Switch может привести к очень странным и трудным для отладки ошибкам, потому что он изменяет ваш код до того, как Perl его увидит, и в то же время обеспечивает минимальную выгоду, если она вообще есть.
По этой причине, и поскольку Perl начал предлагать нативную альтернативу (given
- when
), было решено, что Switch больше не будет связан с perl
.
К сожалению, given
- when
имеет проблемы и задним числом помечен как экспериментальный в 5.18. Использовать их небезопасно, так как они будут изменены обратно несовместимым образом (или могут быть удалены) в будущем.