Tcl - Paquetes
Los paquetes se utilizan para crear unidades de código reutilizables. Un paquete consta de una colección de archivos que proporcionan una funcionalidad específica. Esta colección de archivos se identifica mediante un nombre de paquete y puede tener varias versiones de los mismos archivos. El paquete puede ser una colección de scripts Tcl, una biblioteca binaria o una combinación de ambos.
El paquete utiliza el concepto de espacio de nombres para evitar la colisión de nombres de variables y nombres de procedimientos. Vea más en nuestro próximo tutorial de ' espacio de nombres '.
Creando paquete
Se puede crear un paquete con la ayuda de un mínimo de dos archivos. Un archivo contiene el código del paquete. Otro archivo contiene el archivo de paquete de índice para declarar su paquete.
La lista de pasos para crear y usar el paquete se proporciona a continuación.
PASO 1: Creación de código
Cree el código para el paquete dentro de una carpeta y diga HelloWorld. Deje que el archivo se llame HelloWorld.tcl con el código que se muestra a continuación:
# /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
PASO 2: Crear índice de paquetes
Abra tclsh. Cambie al directorio HelloWorld y use el comando pkg_mkIndex para crear el archivo de índice como se muestra a continuación:
% cd /Users/rajkumar/Desktop/helloworld
% pkg_mkIndex . *.tcl
PASO 3: Agregar directorio a Autopath
Use el comando lappend para agregar el paquete a la lista global como se muestra a continuación:
% lappend auto_path "/Users/rajkumar/Desktop/helloworld"
PASO 4: Agregar paquete
A continuación, agregue el paquete al programa utilizando la declaración de requerimiento del paquete como se muestra a continuación:
% package require HelloWorld 1.0
PASO 5: Procedimiento de invocación
Ahora, con todo lo que está configurado, podemos invocar nuestro procedimiento como se muestra a continuación:
% puts [HelloWorld::MyProcedure]
Obtendrá el siguiente resultado:
HelloWorld
Los primeros dos pasos crean el paquete. Una vez creado el paquete, puede usarlo en cualquier archivo Tcl agregando las últimas tres declaraciones como se muestra a continuación:
lappend auto_path "/Users/rajkumar/Desktop/helloworld"
package require HelloWorld 1.0
puts [HelloWorld::MyProcedure]
Obtendrá el siguiente resultado:
HelloWorld