deprecate
СОДЕРЖАНИЕ
ИМЯ
deprecate - Perl pragma для помечания модуля как устаревшего в ядре
СИНТАКСИС
use deprecate; # warn about future absence if loaded from core ОПИСАНИЕ
Данный pragma упрощает обслуживание модулей с двойной жизнью, которые больше не будут включены в ядро Perl в будущих версиях, но по-прежнему включены в текущей.
Цель данного pragma — предупредить пользователей о статусе такого модуля, выдав сообщение об ошибке, призывающее их установить модуль с CPAN, чтобы обновление до Perl, не содержащего данный модуль, не сломало их код.
Это предупреждение будет выведено только в том случае, если модуль был загружен из каталога ядра, что позволяет включить use deprecate строку в версии модуля с CPAN. Поскольку pragma молчит, когда модуль запускается из каталога библиотек, отличного от каталога ядра, вызов pragma не требуется ни для исправлений в ядре, ни в версии с CPAN. Можно использовать один и тот же код для обоих случаев.
Важное замечание
Обратите внимание, что когда модуль устанавливается с CPAN в каталог ядра, а не в каталоги сайтов, пользователь не защищен от его установки.
В то же время, данный pragma не может обнаружить, когда такой модуль был установлен с CPAN в каталог ядра, и поэтому он будет бесконечно и бесполезно побуждать пользователя к обновлению.
Поэтому модули, которые могут устанавливаться с CPAN в каталог ядра, должны убедиться, что они не вызывают этот pragma, когда это произошло. Как правило, это означает, что необходимо скопировать точную логику из установщика внутрь модуля. Например:
# Makefile.PL
WriteMakefile(
# ...
INSTALLDIRS => ( "$]" >= 5.011 ? 'site' : 'perl' ),
);
# lib/Foo/Bar.pm
use if "$]" >= 5.011, 'deprecate'; (Приведенный выше пример демонстрирует самый важный случай: когда целевая версия Perl старше 5.12 (где каталоги ядра имеют приоритет над каталогами сайтов) и устанавливаемый модуль был включён в ядро в этой версии Perl. В таких случаях обновление модуля с CPAN возможно только путём установки в каталог ядра.)
ЭКСПОРТ
По умолчанию нет. Единственный метод — import, вызываемый use deprecate;.
СМОТРИТЕ ТАКЖЕ
Первый пример для use deprecate; — Переключение.
АВТОР
Оригинальная версия Николаса Кларка
АВТОРСКИЕ ПРАВА И ЛИЦЕНЗИЯ
Авторские права (C) 2009, 2011
Эта библиотека является свободным программным обеспечением; вы можете распространять и/или изменять её на тех же условиях, что и Perl сам, либо Perl версии 5.10.0, либо, по вашему выбору, любой более поздней версии Perl 5, которая у вас доступна.
© 1993–2020 Larry Wall and others
Licensed under the GNU General Public License version 1 or later, or the Artistic License.
The Perl logo is a trademark of the Perl Foundation.
https://perldoc.perl.org/5.30.3/deprecate