Команда загрузки пакетов библиотек и контроля версий.
package forget package package ifneeded package version ?script? package names package provide package ?version? package require ?-exact? package ?version? package unknown ?command? package vcompare version1 version2 package versions package package vsatisfies version1 version2
Команда поддерживает простую базу данных со сведениями о том, какие пакеты библиотечных функций доступны для использования в данном интерпретаторе, и как их загрузить в интерпретатор. Она поддерживает многоверсионность пакетов и гарантирует загрузку в приложение необходимой версии пакета. При этом она обеспечивает контроль непротиворечивости версий. Обычно в Tcl-скриптах достаточно использовать команды package require и package provide. Остальные команды предназначены в первую очередь для системных скриптов, которые поддерживают базу данных пакетов.
Поведение команды package определяется ее первым аргументом. Ниже описаны возможные формы команды.
Команда используется, если для выполнения дальнейшего кода необходим библиотечный пакет package версии version. Команда возвращает номер загруженной версии или ошибку. Если присутствуют оба аргумента -exact и version, то команда загружает именно указанную версию (или выдает ошибку, если эта версия недоступна). Если присутствует номер версии, а -exact опущено, то команда загружает указанную версию или более позднюю, но с тем же старшим номером версии (2.7, но не 3.1, когда указана версия 2.5).
Если база данных не содержит необходимой версии, а в интерпретаторе определена команда для packageunknown (см. ниже), то она исполняется, после чего повторно проверяется доступность необходимой версии. Если версия по-прежнему недоступна, команда возвращает ошибку.
Команда последней надежды при поиске необходимой версии пакета. Если аргумент command указан, то он дополняется именем пакета и версии и полученный скрипт выполняется. Если версия не указана, подставляется пустая строка.
Если аргумент command не указан, возвращает текущий скрипт, заданный для команды package unknown.
Рекомендованный способ работы с пакетами в Tcl состоит в том, чтобы включать в скрипты команды package require и package provide и использовать процедуру pkg_mkIndex (см. соответствующие пункты) для создания индексных файлов для пакетов. Это обеспечивает автоматическую загрузку необходимых пакетов.
См.также close(n), filename(n), gets(n), read(n), puts(n), exec(n).