Spec-Zone.ru › Perl 5.36

deprecate

СОДЕРЖАНИЕ

  • ИМЯ
  • СИНОПСИС
  • ОПИСАНИЕ
    • Важное замечание
  • ЭКСПОРТ
  • СМОТРИТЕ ТАКЖЕ
  • АВТОР
  • АВТОРСКИЕ ПРАВА И ЛИЦЕНЗИЯ

ИМЯ

deprecate - Perl pragma для устаревания включения модуля в ядро

СИНОПСИС

use deprecate;  # warn about future absence if loaded from core

ОПИСАНИЕ

Данный pragma упрощает обслуживание модулей с двойной жизнью, которые больше не будут включены в ядро Perl в будущих выпусках 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–2021 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.36.0/deprecate

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API