Foros del Web » Programación para mayores de 30 ;) » Programación General »

Faq de Perl y CGI

Estas en el tema de Faq de Perl y CGI en el foro de Programación General en Foros del Web. Tema: principiante Pregunta: Que es CGI? Respuesta: Significa Common Gateway Interface, que en español es Interface de Pasarela Común, que significa que se pueden correr ...

  #1 (permalink)  
Antiguo 10/07/2004, 12:04
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 9 meses
Puntos: 90
Faq de Perl y CGI

Tema: principiante
Pregunta: Que es CGI?
Respuesta: Significa Common Gateway Interface, que en español es Interface de Pasarela Común, que significa que se pueden correr varios procesos en paralelo, sin que se molesten entre si. Con esto podemos hacer que un mismo script sea ejecutado por todos los visitantes de nuestra página, y que cada uno se ejecute independientemente de los demás.
__________________
Esteban Quintana

Última edición por monoswim; 18/08/2004 a las 07:19
  #2 (permalink)  
Antiguo 10/07/2004, 13:15
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 9 meses
Puntos: 90
Tema: variables array o vectores
Pregunta: Verificar todos los elementos del array
Respuesta: esto se puede hacer de manera sencilla a travez de un bucle que verifique cada uno de los elementos.

Código:
foreach $elemento (@array){
       print "$elemento <br>\n";
}
De esta forma imprimimos por pantalla un listado de cada uno de los elementos del array.
__________________
Esteban Quintana

Última edición por monoswim; 21/07/2004 a las 17:55
  #3 (permalink)  
Antiguo 11/07/2004, 11:37
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 9 meses
Puntos: 90
Tema: Enviar E-Mails
Pregunta: Como puedo en enviar un mail con Linux?
Respuesta: Es muy común que los formularios web se envíen a una casilla de mail, para ello se puede usar este código, siempre y cuando estemos en linux...

open (MAIL,"|/usr/lib/sendmail");
print MAIL "To: para\@mail.com\n";
print MAIL "From: de\@mail.com\n";
print MAIL "Subject: Asunto\n\n";
print MAIL "bla bla bla\n";
close MAIL;

Es de notar que en cada uno de los email se coloca la barra invertida (\) antes del arroba, esto se hace para que el interprete de perl lo tome literalmente y no piense que es una variable array.
__________________
Esteban Quintana

Última edición por monoswim; 21/07/2004 a las 10:08
  #4 (permalink)  
Antiguo 12/07/2004, 15:46
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 9 meses
Puntos: 90
Tema: Principiante
Pregunta: No puedo hacer andar el script...
Respuesta: Los errores más comunes son: No colocar el print "content-type: text/html \n\n"; en la primera linea de salida.
No colocar los permisos de ejecución a los scripts (Generalmente chmod 755)
Tener mal la dirección del intérprete de perl en la primera linea del script: Generalmente #!usr/bin/perl en unix y #!c:/perl/bin/perl.exe
__________________
Esteban Quintana
  #5 (permalink)  
Antiguo 12/07/2004, 15:47
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 9 meses
Puntos: 90
Tema: Principiante
Pregunta: Como trabajo con perl y módulos?
Respuesta: Para instalar el intérprete de perl en windows o linux puedes visitar www.activeperl.com, (en linux seguramente ya te viene en la distribución)...Para instalar y leer la documentación de los módulos debes visitar www.cpan.org
__________________
Esteban Quintana

Última edición por monoswim; 23/11/2004 a las 08:11
  #6 (permalink)  
Antiguo 12/07/2004, 15:48
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 9 meses
Puntos: 90
Tema: Manejo de strings
Pregunta: Como puedo concatenar strings y variables?
Respuesta: Hay varias formas, una es con comillas dobles (") de la forma:

$usuario = 'juan'; #Se toma literalmente con comillas simples, no se interpreta nada.
$string = "Hola $usuario como andás?"; #(resultado Hola juan como andás) acá si se interpretó la variable.

Otra forma es con el . de la forma:

$string = 'hola' . $usuario . 'como andás?'; #(resultado Hola juan como andás) acá si se interpretó la variable de forma separada.
__________________
Esteban Quintana
  #7 (permalink)  
Antiguo 12/07/2004, 15:50
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 9 meses
Puntos: 90
Tema: Variables Arrays o Vectores
Pregunta: Como crear un Array?
Respuesta: Se hace asignando los distintos valores que tendrán los elementos del array, dichos elementos se empiezan a contar desde el 0 y se utilizan como variables escalares comunes.

my @array = ('elemento0','elemento1','elemento2','elemento3',' elemento4','elemento5');

Para trabajar con cada uno de los elementos del array podemos...

$array[3] = 'valor del elemento 3 del vector @array';
__________________
Esteban Quintana
  #8 (permalink)  
Antiguo 12/07/2004, 15:52
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 9 meses
Puntos: 90
Tema: Variables Arrays o Vectores
Pregunta: como agregar uno o varios elementos al array?
Respuesta: Para agregar elementos al array tenemos 2 funciones (push y unshift) que sirven para agregar elementos al final o al comienzo de un array respectivamente:

push (@array, $nuevo_elemento);

unshift (@array, $nuevo_elemento);

NOTA: podemos agregar más de un elemento al mismo tiempo, separándolos por comas o colocando otro array
__________________
Esteban Quintana
  #9 (permalink)  
Antiguo 12/07/2004, 15:54
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 9 meses
Puntos: 90
Tema: Variables Arrays o Vectores
Pregunta: como eliminar un elemento al array?
Respuesta: Para eliminar elementos al array tenemos 2 funciones (pop y shift) que sirven para eliminar el último o primer elemento del array respectivamente, a la vez ese elemento eliminado lo podemos guardar en una variable escalar.

$elem_eliminado = pop(@array);

$elem_eliminado = shift(@array);
__________________
Esteban Quintana
  #10 (permalink)  
Antiguo 12/07/2004, 15:56
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 9 meses
Puntos: 90
Tema: Archivos
Pregunta: Como trabajar con un archivo?
Respuesta: Para abrir archivos Perl tiene un manejador de archivos o FileHandle que se utiliza de la siguiente manera:

open (DATABASE, "<archivo.txt");
@registros = <DATABASE>;
close (DATABASE);

De esta forma estamos cargando todas las lineas del archivo en un array, en donde cada linea sea un elemento del array.

Es de notar que antes del nombre del archivo hay un signo de menor, eso significa que el archivo se abrirá para solo lectura, para hacerlo de escritura (borrando previemente la info que tenía) se usa el signo mayor (>) y para solamente agregar info a la que ya contiene el archivo se usan 2 signos mayores (>>), lo que hace es posicionarce en el último caracter del archivo y mediante un "print" podemos agregarle info:

open (DATABASE, ">>archivo.txt");
print DATABASE "Nuevo registro en el archivo\n";
close (DATABASE);
__________________
Esteban Quintana
  #11 (permalink)  
Antiguo 12/07/2004, 16:01
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 9 meses
Puntos: 90
Tema: Archivos
Pregunta: Como bloquear un archivo?
Respuesta: Cuando trabajamos bajo linux tenemos la fuención flock() que nos permite bloquear (para lectura o escritura) el archivo para que mientras lo tengamos abierto, los demás no puedan hacer acciones que terminen violando la integridad de la información que tenemos en el archivo:

flock(DATABASE,2);

Con el número 2 tenemos acceso exclusivo al archivo (cuando lo vamos a escribir debemos usar esta opción, para que otros no escriban al mismo tiempo que nosotros). Con el número 1 tenemos acceso accceso compartido para lleer el archivo y que otros también lo puedan leer.
__________________
Esteban Quintana

Última edición por monoswim; 17/11/2004 a las 12:27
  #12 (permalink)  
Antiguo 12/07/2004, 16:03
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 9 meses
Puntos: 90
Tema: funciones y subrutinas
Pregunta: Como creo y llamo funciones y como les paso parámetros?
Respuesta: En Perl los términos subrutina, procedimiento y función son sinónimos, para crearlas utilizamos la palabra sub y para pasarles parámetros lo hacemos de forma tradicional:

Código:
#creamos la subrutina
sub mi_rutina {
     my($parametro1,$parametro2) = @_;
     print "hola $parametro1 $parametro2";
}

# llamamos a la subrutina y le pasamos los 2 parámetros
my $pregunta = 'como andas';
&mi_rutina('Pablo',$pregunta);
__________________
Esteban Quintana

Última edición por monoswim; 20/07/2004 a las 14:09
  #13 (permalink)  
Antiguo 12/07/2004, 16:08
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 9 meses
Puntos: 90
Tema: Variables hash
Pregunta: que es y como se usa una variable hash?
Respuesta: Una variable hash es una variable que tiene una lista de pares del tipo nombre=valor, de manera que podamos colocar varias igualdades con respecto a esa variable, por ejemplo, crearemos una variable cliente y le cargaremos los siguientes datos:

my %cliente;
$cliente{'nombre'} = 'Esteban';
$cliente{'apellido'} = 'Quintana';
$cliente{'alias'} = 'MonoSwim';
$cliente{'nacionalidad'} = 'Argentina';

De esta manera almacenamos toda la info de nuestro cliente en una variable hash, en distintos pares ordenados.
__________________
Esteban Quintana
  #14 (permalink)  
Antiguo 12/07/2004, 16:09
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 9 meses
Puntos: 90
Tema: Variables hash
Pregunta: Como leer las claves olos valores de una variable hash?
Respuesta: En Perl tenemos 2 funciones que nos devuelven un array con todos las claves del hash o los valores... estas funciones son keys y values...y se usan de la siguiente manera:

@claves = keys (%hash);
@values = values (%hash);

Para obtener los pares ordenados de una sola vez podemos usar la funcion each...que veremos en la próxima pregunta.
__________________
Esteban Quintana

Última edición por monoswim; 26/08/2004 a las 06:57
  #15 (permalink)  
Antiguo 12/07/2004, 16:12
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 9 meses
Puntos: 90
Tema: Variables hash
Pregunta: Como leer cada uno de los elementos de una variable hash?
Respuesta: Lo podemos hacer usando la función each...Adentro de un bucle que recorra todo el hash:

Código:
while (($clave,$valor) = each(%hash)){
     print "La clave $clave tiene el valor $valor";
}
Esta variable es muy util a la hora de trabajar con XML, ya que tiene un formato parecido y se puede procesar facilmente.
__________________
Esteban Quintana

Última edición por monoswim; 20/07/2004 a las 14:10
  #16 (permalink)  
Antiguo 12/07/2004, 16:14
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 9 meses
Puntos: 90
Tema: Directorios
Pregunta: Como puedo abrir y leer la info que tiene un directorio?
Respuesta: Lo podemos hacer de una manera muy similar a la de abrir archivos...como veremos a continuación:

opendir (DATABASEDIR, "../htdocs/imagenes/");
my @imagenes = readdir (DATABASEDIR);
closedir(DATABASEDIR);

Este es un código que alguna vez usé para abrir un directorio en donde almacenaba mis .jpg cuyos nombres completos quedaban almacenados en la variable @imagenes.
__________________
Esteban Quintana
  #17 (permalink)  
Antiguo 12/07/2004, 16:45
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 9 meses
Puntos: 90
Tema: Cookies
Pregunta: Como escribir Cookies
Respuesta: Para enviarle una cookie para que el navegador la guarde la tenemos que imprimir antes de colocar el content-type: text/html \n\n...Y se hace de la siguiente manera
Código:
  $expires = '3-May-2005 00:00:00 GTM';
  $path = '/cgi-cgi';
  $domain = '.e-netsoft.com.ar

  print "Set-Cookie: nic = MonoSwim; expires = $expiration; path = $path; domain = $domain; secure \n";
De esta manera estamos enviando la cookie nic que tiene el valor MonoSwim que será almacenada hasta el 3-May-2005 y será usada por el directorio cgi/bin del dominio e-netsoft.com.ar
__________________
Esteban Quintana

Última edición por monoswim; 20/07/2004 a las 14:12
  #18 (permalink)  
Antiguo 12/07/2004, 16:49
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 9 meses
Puntos: 90
Tema: Cookies
Pregunta: Como leo las cookieas ya enviadas ?
Respuesta: Se hace a través de las variables de entorno...
Código:
  my (@cookies, %cookie_hash, $cookie, $key, $val);

  @cookies = split (/; /,$ENV{'HTTP_COOKIE'});

  foreach $cookie (@cookies){
          ($key, $val) = split (/=/,$cookie);
          $cookie_hash{$key} = $val;
  }
Así creamos un hash que contiene los pares de nombre = valor de nuestras cookies, para accederla hacemos $cookie_hash{'nic'} y nos trarerá MonoSwim
__________________
Esteban Quintana

Última edición por monoswim; 20/07/2004 a las 14:13
  #19 (permalink)  
Antiguo 12/07/2004, 17:00
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 9 meses
Puntos: 90
Tema: Tiempo -> hora y fecha
Pregunta: Como saber la fecha del servidor?
Respuesta: El servidor tiene almacenadas 2 fechas, una es la local y otra es la universal del meridiano de grenweech (o como se escriba). y las podemos accesar con las funcines localtime y gmtime respectivamente.

($sec,$min,$hora,$mdia,$mon,$ano,$wdia,$ydia,$isds t) = localtime (time);

Cabe destacar que wdia es el día de la semana, sirve para saber si es lunes, martes...
y mdia es el día del mes como hoy que es 12
__________________
Esteban Quintana
  #20 (permalink)  
Antiguo 13/07/2004, 11:25
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 9 meses
Puntos: 90
Tema: CGI y Script
Pregunta: Como tomo los datos del formulario o del HTML ?
Respuesta: Capturamos los datos, tanto por GET como por POST

Código:
if ($ENV{'REQUEST_METHOD'} eq 'POST') {
     read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
} else {
     $buffer = $ENV{'QUERY_STRING'};
}
@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
     ($name, $value) = split(/=/, $pair);
     $name =~ tr/+/ /;
     $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
     $value =~ tr/+/ /;
     $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
     $FORM{$name} = $value;
}
Ahora podemos ver la info del formulario con $FORM{'nombre_campo_html'} como por ejemplo $FORM{'nombre'} , $FORM{'email'} ...

O con el módulo CGI...

Código:
#!/usr/bin/perl

use strict;
use CGI;
my $cgi = new CGI;
my %FORM = $cgi->Vars;
Saludos
__________________
Esteban Quintana

Última edición por monoswim; 22/03/2005 a las 13:53
  #21 (permalink)  
Antiguo 13/07/2004, 11:49
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 9 meses
Puntos: 90
Tema: Imprimir código HTML
Pregunta: Como imprimir el HTML de una sola vez, sin concatenar ?
Respuesta: Se puede imprimir todo el HTML sin tener problemas con las comillas dobles del HTML e interpretando cada una de las variables que coloquemos entre medio, de la siguiente manera:

print "Content-type: text/html\n\n";
print << "HTML_END";

<html><body bgcolor="#006699">...
...
$mivariable
...
</body></html>
HTML_END
exit(1);
__________________
Esteban Quintana
  #22 (permalink)  
Antiguo 14/07/2004, 08:26
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 9 meses
Puntos: 90
Tema: funciones y subrutinas
Pregunta: Como pasar parámetros por referencia?
Respuesta: En perl podemos pasar cualquier variable por referencia, ahorrando la memoria utilizada y haciendo más rápido el script.

Código:
my $variable = "hola gente";
&imprimir(\$variable);
exit;

sub imprimir(){
     my $ref = $_[0];
     print "content-type: text/html \n\n";
     print "$$ref";
}
De esta manera pasamos la dirección de memoria en donde está la variable, y cuando la usamos en la subrutina estamos usando la variable original.
__________________
Esteban Quintana

Última edición por monoswim; 20/07/2004 a las 07:35
  #23 (permalink)  
Antiguo 14/07/2004, 08:34
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 9 meses
Puntos: 90
Tema: Tiempo -> hora y fecha
Pregunta: Como calcular la fecha en forma de string?
Respuesta: Para calcular la fecha de la forma "Miércoles, 25 de agosto de 2004"...
Código:
my ($sec,$min,$hora,$mdia,$mon,$ano,$wdia,$ydia,$isdst,@meses,@dias,$fecha);
($sec,$min,$hora,$mdia,$mon,$ano,$wdia,$ydia,$isdst) = localtime (time);
@meses = ('Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre');
@dias = ('Domingo','Lunes','Martes','Miercoles','Jueves','Viernes','Sabado');

$ano += 1900;

$fecha = "$dias[$wdia], $mdia de $meses[$mon] de $ano";
__________________
Esteban Quintana

Última edición por monoswim; 20/07/2004 a las 14:14
  #24 (permalink)  
Antiguo 14/07/2004, 17:55
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 9 meses
Puntos: 90
Tema: Manejar Código HTML
Pregunta: Como entrecomillar una cadena ?
Respuesta: Cuando usamos strings de HTML muchas veces las comillas son muy molestas, para lo cual perl tiene una solución:

my $variable = q (<img src="1.jpg" alt="valor $5">);
my $variable = qq (<img src="1.jpg" alt="$mensaje">);

cuando colocamos q es para entrecomillar sin interpolación, como las comillas simples, se toma todo literal
cuando colocamos qq es para entrecomillar con interpolación, como las comillas dobles, o sea, las variables serán comprendidas
__________________
Esteban Quintana
  #25 (permalink)  
Antiguo 14/07/2004, 18:08
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 9 meses
Puntos: 90
Tema: Manejo de Archivos
Pregunta: Como puedo eliminar los saltos de linea?
Respuesta: Con una simple expresión regular se puede hacer fácilmente...

$registro =~ s/\n//g;

O si quiero intercambiar los saltos de linea del archivo de texto por saltos de linea de HTML

$value =~ s/\n/<br>/g;
__________________
Esteban Quintana
  #26 (permalink)  
Antiguo 15/07/2004, 06:57
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 9 meses
Puntos: 90
Tema: módulos
Pregunta: Como instalar un Módulo en Windows
Repuesta: Para instalar un módulo tenemos que:

Entrar al MS-DOS (Inicio-programas-accesorios-Símbolos del sistema)
Ejecutar la sentencia "cd.." hasta posicionarnos en c:/
Luero tenemos que ir a la carpeta bin del directorio perl, la cual generalmente está en c:/perl/bin...Entonces tenemos que ejecuta "cd perl" y "cd bin"
Ahora que ya estamos en la carpeta debemos ejecutar "ppm" , y una vez en el ppm podemos instalar lo que querramos por ejemplo "install dbi" o "install Time-Local"
__________________
Esteban Quintana
  #27 (permalink)  
Antiguo 15/07/2004, 08:53
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 9 meses
Puntos: 90
Tema: errores
Pregunta: Como manejar errores de ejecución?
Respuesta: Podemos hacer una subrutina que imprima los mensajes de error para cuando haya algún problema en nuestro script
Código:
sub error {
        print "content-type: text/html \n\n";
        print "Error: Cant $_[0] the $_[1]";
        print '<br><br>comunicate con Esteban Quintana a [email protected]';
        exit;
}
Cuando escribamos nuestras lineas de código colocamos una llamada alternativa a esta función pasandole 2 parámetros explicando el error:

open (MAIL, "|/usr/lib/sendmail -t") || &error('open','mail process');

De manera que o se ejecuta normalmente o imprime el error
__________________
Esteban Quintana

Última edición por monoswim; 20/07/2004 a las 14:17
  #28 (permalink)  
Antiguo 20/07/2004, 07:17
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 9 meses
Puntos: 90
Tema: variable hash
Pregunta: Como verificar la existencia de una clave
Respuesta: Se hace con la función exist...

Código:
if (exist $hash{'nombre'}) {
     print "tenemos el nombre";
}else{
     print "Escribime tu nombre!!!";
}
__________________
Esteban Quintana
  #29 (permalink)  
Antiguo 20/07/2004, 07:32
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 9 meses
Puntos: 90
Tema: variable hash
Pregunta: Como obtener los pares en un orden
Respuesta: Se hace en conjunto con la funciones sort y keys...

Código:
print "Content-type: text/html\n\n"; 

foreach $key (sort (keys %hash)){
     print "La clave $key tiene el valor $hash{$key} <br>\n";
}
__________________
Esteban Quintana
  #30 (permalink)  
Antiguo 20/07/2004, 08:11
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 9 meses
Puntos: 90
Tema: Variables de Entorno
Pregunta: Como puedo listar todas las variables que hay ?
Respuesta: hay que listar todos los keys del hash %ENV, como ya vimos se hace de la siguiente manera:

Código:
print "Content-type: text/html\n\n";
foreach $var (sort(keys(%ENV))) {
    $val = $ENV{$var};
    $val =~ s|\n|\\n|g;
    $val =~ s|"|\\"|g;
    print "${var}=\"${val}\" <br>\n";
}
__________________
Esteban Quintana
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:34.