Uso de etiquetas: el hash EXPORT_TAGS

El ''hash'' %EXPORT_TAGS es usado por módulos que proveen un gran número de funciones, como es el caso de CGI o POSIX para crear grupos de alto nivel de símbolos relacionados. Por ejemplo:

%EXPORT_TAGS = (
  Functions => [ qw(F1 F2 Op_Func) ],
  Variables => [ qw(@List %Table)  ],
);

Un símbolo de la lista de importación precedido de dos puntos indica una etiqueta:

use NuestroModulo qw(:Functions %Table);

Como se ha dicho, el módulo CGI.pm funciona con esta filosofía. Véase el siguiente ejemplo que usa CGI en el que se carga el grupo :standard:

$ cat -n cgitaste.pl
 1  #!/usr/bin/perl -w
 2  use CGI qw(:standard);
 3
 4  print header;
 5  print start_html('Un ejemplo Sencillo'),
 6      h1('Un ejemplo Sencillo'),
 7      start_form,
 8      "¿Tu nombre? ",textfield('nombre'),
 9      p,
10      "¿Matriculado en?",
11      checkbox_group(-name=>'estudios',
12                     -values=>['Sistemas','Gestión','Superior'],
13                     -defaults=>['sistemas']),
14      p,
15      "¿Lenguaje favorito? ",
16      popup_menu(-name=>'len',
17                 -values=>['C','C++','Pascal','Java','Lisp','Prolog','Python','Perl']),
18      p,
19      submit(-name=>"Enviar"),
20      end_form,
21      hr;
22
23  if (param()) {
24      print h1('Tus datos:'),
25          p,
26          "Nombre: ",em(param('nombre')),
27          p,
28          "Estudios: ",em(join(", ",param('estudios'))),
29          p,
30          "Lenguaje favorito: ",em(param('len')),
31          hr;
32  }
33  print end_html;
Puede ejecutar este ejemplo en http://nereida.deioc.ull.es/lhp-cgi/cgitaste.pl.

Casiano Rodríguez León
Licencia de Creative Commons
Principios de Programación Imperativa, Funcional y Orientada a Objetos Una Introducción en Perl/Una Introducción a Perl
por Casiano Rodríguez León is licensed under a Creative Commons Reconocimiento 3.0 Unported License.

Permissions beyond the scope of this license may be available at http://campusvirtual.ull.es/ocw/course/view.php?id=43.
2012-06-19