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