Página 1 de 1

Módulo CGI.pm en Perl 5.26.1

NotaPublicado: 2018-02-01 16:42 @737
por seafree
Buenas tardes. Me encuentro probando el siguiente script que me compartiste en su momento para realizar pruebas respecto al uso de UTF8:

Re: Unicode (UTF-8)
Nota por explorer » 2015-02-27 15:30 @687


#!/usr/bin/perl
use CGI qw(:standard :utf8);
use CGI::Carp qw(fatalsToBrowser);

use strict;
use warnings;
use utf8;

use open OUT => ':utf8'; # Salida en utf8
use open ':std'; # incluida la salida estándar

my $parametro = query_string(); # 'keywords=A1'
#print "$parametro\n";
#$parametro = (split ";", $parametro)[0];
($parametro) = split "=", $parametro;
#print "$parametro\n";

if ( $parametro eq 'A1' ) { AlmacenaCaracteresSinAjax() }
elsif ( $parametro eq 'A2' ) { AlmacenaCaracteresConAjax() }


sub AlmacenaCaracteresSinAjax {
my $cadena = param('cadena');
# my $cadena = decode('utf8', param('cadena'));
# my $cadena = decode_utf8(param('cadena'));

print
header(
-charset => 'utf-8',
-type => 'text/html',
),
start_html,
p("Sin Ajax: $cadena."),
end_html,
;
}

sub AlmacenaCaracteresConAjax {
my $cadena = param('cadena');

print
header(
-charset => 'utf-8',
-type => 'text/plain',
),
"Con Ajax: $cadena",
;
}

Sin embargo, al ejecutarlo me envió la siguiente alarma:

# perl utf8cgi.pl cadena=Camión
Can't locate CGI.pm in @INC (you may need to install the CGI module) (@INC contains: /usr/local/lib/perl5/site_perl/5.26.1/x86_64-linux /usr/local/lib/perl5/site_perl/5.26.1

Investigando en la web encontré "CGI.pm HAS BEEN REMOVED FROM THE PERL CORE" --- https://metacpan.org/pod/distribution/CGI/lib/CGI.pod ---

Y mi pregunta aquí es ¿qué es lo que va pasar con los otros programas que están en línea? Éstos fueron creados con varias versiones anteriores a Perl. Actualicé Perl y como pueden la versión a la cual actualicé es la 5.26.1.

El servidor que estoy utilizando es Apache en un servidor de CentOS 7.

Segunda pregunta: Después de descargar e instalar el CGI.pm del CPAN, ¿lo instaló y todo debe de funcionar correctamente?

Re: Módulo CGI.pm en Perl 5.26.1

NotaPublicado: 2018-02-01 17:39 @777
por explorer
seafree escribiste:¿qué es lo que va pasar con los otros programas que están en línea? Éstos fueron creados con varias versiones anteriores a Perl.

Segunda pregunta: Después de descargar e instalar el CGI.pm del CPAN, ¿lo instaló y todo debe de funcionar correctamente?

No pasa nada: se instala CGI y listo: los programas antiguos seguirán funcionando (salvo... que necesiten de una versión específica de CGI).

En cuanto a la segunda pregunta, la respuesta es sí, siempre y cuando se instale de forma correcta (es decir, que los programas sean capaces de encontrarlo).

Re: Módulo CGI.pm en Perl 5.26.1

NotaPublicado: 2018-04-12 09:58 @457
por seafree
Buenos días, explorer. Respecto a la instalación del módulo CGI.pm en Perl 5.26.1, a pesar de que ya lo instalé me sigue mostrando Can't locate CGI.pm in @INC. ¿Eso quiere decir que no lo instalé de la forma correcta?

Verás, para empezar descargué el módulo CGI::Simple porque el CGI.pm no le encuentra desde el CPAN, pensé que era suficiente pero no es así por que continúa mostrando:

# perl -w DAS.cgi
Can't locate CGI.pm in @INC

# instmodsh
Installed modules are:
CGI::Simple, supuestamente acepta las referencias del CGI.pm
.
.
Ya le puse todas las rutas opcionales del @INC y sigue sin funcionar:

@INC contains: /usr/local/lib/perl5/site_perl/5.26.1/x86_64-linux
/usr/local/lib/perl5/site_perl/5.26.1
/usr/local/lib/perl5/5.26.1/x86_64-linux
/usr/local/lib/perl5/5.26.1

Agradeceré tu gran apoyo para encontrar solución a esto, muchas gracias.

Re: Módulo CGI.pm en Perl 5.26.1

NotaPublicado: 2018-04-12 11:21 @514
por explorer
Extraño que no encuentres CGI en metaCPAN.

Pero lo ideal es que lo instales desde tu gestor de paquetes de software, no desde CPAN.

Tampoco nos has dicho cómo has hecho la instalación.

Si sale el error de que no lo encuentra es que no está instalado en alguno de los directorios en los que Perl busca por los módulos, que son los directorios contenidos dentro de @INC.

Si lo has instalado en un directorio "extraño", entonces te basta con poner en tu programa, al principio, un "use lib" con la ruta a ese directorio. Por ejemplo:

use lib "/directorio/realmente/extraño/donde/he/colocado/el/modulo";
use CGI;

Re: Módulo CGI.pm en Perl 5.26.1

NotaPublicado: 2018-04-12 11:51 @535
por seafree
Enormes gracias, explorer. Algo no estaba bien escrito pero con el ejemplo enviado el programa compila :)

Respetos para ti.
Nuevamente, gracias.