Tcl - Pacotes
Os pacotes são usados para criar unidades de código reutilizáveis. Um pacote consiste em uma coleção de arquivos que fornecem funcionalidades específicas. Esta coleção de arquivos é identificada por um nome de pacote e pode ter várias versões dos mesmos arquivos. O pacote pode ser uma coleção de scripts Tcl, biblioteca binária ou uma combinação de ambos.
O pacote usa o conceito de namespace para evitar a colisão de nomes de variáveis e nomes de procedimentos. Confira mais em nosso próximo tutorial de ' namespace '.
Criando Pacote
Um pacote pode ser criado com a ajuda de no mínimo dois arquivos. Um arquivo contém o código do pacote. Outro arquivo contém o arquivo de pacote de índice para declarar seu pacote.
A lista de etapas para criar e usar o pacote é fornecida abaixo.
ETAPA 1: Criação de código
Crie o código para o pacote dentro de uma pasta, diga HelloWorld. Deixe o arquivo se chamar HelloWorld.tcl com o código mostrado abaixo -
# /Users/rajkumar/Desktop/helloworld/HelloWorld.tcl
# Create the namespace
namespace eval ::HelloWorld {
# Export MyProcedure
namespace export MyProcedure
# My Variables
set version 1.0
set MyDescription "HelloWorld"
# Variable for the path of the script
variable home [file join [pwd] [file dirname [info script]]]
}
# Definition of the procedure MyProcedure
proc ::HelloWorld::MyProcedure {} {
puts $HelloWorld::MyDescription
}
package provide HelloWorld $HelloWorld::version
package require Tcl 8.0
ETAPA 2: Criando Índice de Pacote
Abra o tclsh. Mude para o diretório HelloWorld e use o comando pkg_mkIndex para criar o arquivo de índice conforme mostrado abaixo -
% cd /Users/rajkumar/Desktop/helloworld
% pkg_mkIndex . *.tcl
ETAPA 3: Adicionando diretório ao Autopath
Use o comando lappend para adicionar o pacote à lista global como mostrado abaixo -
% lappend auto_path "/Users/rajkumar/Desktop/helloworld"
PASSO 4: Adicionando Pacote
Em seguida, adicione o pacote ao programa usando a instrução package require conforme mostrado abaixo -
% package require HelloWorld 1.0
ETAPA 5: Procedimento de Invocação
Agora, tudo sendo configurado, podemos invocar nosso procedimento conforme mostrado abaixo -
% puts [HelloWorld::MyProcedure]
Você obterá o seguinte resultado -
HelloWorld
As duas primeiras etapas criam o pacote. Depois que o pacote é criado, você pode usá-lo em qualquer arquivo Tcl adicionando as três últimas instruções conforme mostrado abaixo -
lappend auto_path "/Users/rajkumar/Desktop/helloworld"
package require HelloWorld 1.0
puts [HelloWorld::MyProcedure]
Você obterá o seguinte resultado -
HelloWorld