Ya hice algunos post más antes y en base a ellos desarrollé mi primer script en Perl. Funciona muy bien, pero no me dio los resultados que esperaba ya que en PHP se ejecutaba más rápido y utilizaba menos recursos.
Bueno, esto no me desanima, ya que me explicaron que Perl funciona mucho más rápido con mod_perl. Mi pregunta es ¿EL MOD_PERL USA OTRA SINTAXIS? ¿DEBO MODIFICAR EL CÓDIGO YA HECHO O SOLO NECESITO CARGARLO EN UN "use"? ¿En cuál gasto más memoria? ¿CPU PERL+CGI, PERL+MOD_PERL O PHP? ¿Alguien me podría explicar? Dejaré un ejemplo de mi código.
Espero esté bien formulada la pregunta, ¡muchas gracias!
Using perl Syntax Highlighting
#!/usr/bin/perl -w
# Cargando Módulos necesarios
use CGI ':standard';
use CGI::Carp qw(fatalsToBrowser);
use Mysql;
use LWP::UserAgent;
use HTTP::Request;
use warnings;
# Creando Variables nesesarias
my $cgi = CGI->new();
my %_GET = $cgi->Vars();
# Cargando el config e imprimiendo las cabeceras
push (@INC, '.');
require 'config.pl';
print $cgi->header(-charset => 'iso-8859-1');
# Verificando si nuestro GET tiene el valor correcto Grupo - Tema
my $data = $_GET{id};
@datos = split(/ - /, $data);
if (defined($datos[1]) && defined($datos[0]))
{
# Conectando a la BD de lyrics y ejecutando consultas
conectar (nuevaq_lyrics);
my $tema = $db->quote($_GET{id});
my $consulta = "SELECT titulo,letra FROM lyrics WHERE titulo=$tema";
my $query = $db->query($consulta) or die $Mysql::db_errstr;
# creando condicional de resultados
if($query->numrows) {
my %datos = $query->fetchhash;
my $letra = utf8::decode($datos{'letra'});
# Imprimiendo las letras
print " <div id=\"new-videos-module\" class=\"side-module\">
<div class=\"head\"><h2>Letra de Cancion</h2></div>
<div class=\"body\">
<div id=\"side_new_video_tab\" class=\"section\">
<div id=\"xNav\">
<p class=\"title\">$datos{'titulo'}</p>
<p>$datos{'letra'}</p>
</div>
</div>
</div>
<div class=\"foot\"></div>
</div>";
}
else {
# En caso que las lyrics no existan en nuestra DB ejecutamos el explorador
# Asignando variables
my $URL = 'http://www.lyricsplugin.com/winamp03/plugin/?title='.$_GET{id};
my $agent = LWP::UserAgent->new(env_proxy => 1,keep_alive => 1, timeout => 30);
my $header = HTTP::Request->new(GET => $URL);
my $request = HTTP::Request->new('GET', $URL, $header);
my $response = $agent->request($request);
# Condionales de resultado
if ($response->is_success){
my $datoz = $response->as_string;
my ($temx,$artista,$letra) = $datoz =~ m/<div id="title">(.*?)<\/div>.*?<div id="artist">(.*?)<\/div>.*?<div id="lyrics">(.*?)<\/div>/sm;
print " <div id=\"new-videos-module\" class=\"side-module\">
<div class=\"head\"><h2>Letra de Cancion</h2></div>
<div class=\"body\">
<div id=\"side_new_video_tab\" class=\"section\">
<div id=\"xNav\">
<p class=\"title\">$artista - $temx</p>
<p>$letra</p>
</div>
</div>
</div>
<div class=\"foot\"></div>
</div>";
my $insertar = "INSERT INTO lyrics (titulo,letra) VALUES ($tema,'$letra')";
$db->query($insertar) or die $Mysql::db_errstr;
}
elsif ($response->is_error){
print "Error:$URL\n";
print $response->error_as_HTML;
}
}
}
# Cerrando Script
exit (0);
# Cargando Módulos necesarios
use CGI ':standard';
use CGI::Carp qw(fatalsToBrowser);
use Mysql;
use LWP::UserAgent;
use HTTP::Request;
use warnings;
# Creando Variables nesesarias
my $cgi = CGI->new();
my %_GET = $cgi->Vars();
# Cargando el config e imprimiendo las cabeceras
push (@INC, '.');
require 'config.pl';
print $cgi->header(-charset => 'iso-8859-1');
# Verificando si nuestro GET tiene el valor correcto Grupo - Tema
my $data = $_GET{id};
@datos = split(/ - /, $data);
if (defined($datos[1]) && defined($datos[0]))
{
# Conectando a la BD de lyrics y ejecutando consultas
conectar (nuevaq_lyrics);
my $tema = $db->quote($_GET{id});
my $consulta = "SELECT titulo,letra FROM lyrics WHERE titulo=$tema";
my $query = $db->query($consulta) or die $Mysql::db_errstr;
# creando condicional de resultados
if($query->numrows) {
my %datos = $query->fetchhash;
my $letra = utf8::decode($datos{'letra'});
# Imprimiendo las letras
print " <div id=\"new-videos-module\" class=\"side-module\">
<div class=\"head\"><h2>Letra de Cancion</h2></div>
<div class=\"body\">
<div id=\"side_new_video_tab\" class=\"section\">
<div id=\"xNav\">
<p class=\"title\">$datos{'titulo'}</p>
<p>$datos{'letra'}</p>
</div>
</div>
</div>
<div class=\"foot\"></div>
</div>";
}
else {
# En caso que las lyrics no existan en nuestra DB ejecutamos el explorador
# Asignando variables
my $URL = 'http://www.lyricsplugin.com/winamp03/plugin/?title='.$_GET{id};
my $agent = LWP::UserAgent->new(env_proxy => 1,keep_alive => 1, timeout => 30);
my $header = HTTP::Request->new(GET => $URL);
my $request = HTTP::Request->new('GET', $URL, $header);
my $response = $agent->request($request);
# Condionales de resultado
if ($response->is_success){
my $datoz = $response->as_string;
my ($temx,$artista,$letra) = $datoz =~ m/<div id="title">(.*?)<\/div>.*?<div id="artist">(.*?)<\/div>.*?<div id="lyrics">(.*?)<\/div>/sm;
print " <div id=\"new-videos-module\" class=\"side-module\">
<div class=\"head\"><h2>Letra de Cancion</h2></div>
<div class=\"body\">
<div id=\"side_new_video_tab\" class=\"section\">
<div id=\"xNav\">
<p class=\"title\">$artista - $temx</p>
<p>$letra</p>
</div>
</div>
</div>
<div class=\"foot\"></div>
</div>";
my $insertar = "INSERT INTO lyrics (titulo,letra) VALUES ($tema,'$letra')";
$db->query($insertar) or die $Mysql::db_errstr;
}
elsif ($response->is_error){
print "Error:$URL\n";
print $response->error_as_HTML;
}
}
}
# Cerrando Script
exit (0);
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4
Gracias