¡¡Hola!! Aprendí POO y me puse a jugar en Perl, ahora bien... Me sale un error y no sé a qué corresponde, espero algún consejo para poder solucionarlo.
Using perl Syntax Highlighting
#!/usr/bin/perl
#Modulo MySQL inserta y consultar registros
use warnings;
use strict;
use DBI;
use DBD::mysql;
package MysqlTest;
sub new{
my $class = shift;
my $query={};
bless($query, $class);
}
sub conexion{
my $self=shift;
my($database, $hostname, $user, $pwd)=@_;
$self->{"host"}=$hostname;
$self->{"database"}=$database;
$self->{"user"}=$user;
$self->{"pass"}=$pwd;
my $connect = DBI->connect("DBI:mysql:$database:$hostname", $user, $pwd) or die $DBI::errstr;
my $mysqlopen = 1;
return;
}
sub consulta{
my $self=shift;
if (!my $mysqlopen) { &conexion; }
my $id = "SELECT * FROM save_bookmarks WHERE id='123'";
my $result = my $connect->prepare($id);
$result->execute();
my @resultado = $result->fetchrow_array();
print "@resultado\n";
return;
}
sub datos{
my $self=shift;
print "::DATOS DE ACCESO::\n";
while ((my $key, my $value)=each(%$self)){
print "$key => $value\n";
}
}
1;
Coloreado en 0.003 segundos, usando
GeSHi 1.0.8.4
Acá dejo el otro archivo donde invoco el objecto y los mensajes.
Using perl Syntax Highlighting
#!/usr/bin/perl
use MysqlTest;
use warnings;
use strict;
my $mysqltest = MysqlTest->new();
$mysqltest->conexion("bookmarks", "localhost", "root", "hacura");
$mysqltest->consulta();
$mysqltest->datos();
Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
y a continuación el error en consola.
Using bash Syntax Highlighting
Use of uninitialized value $database in concatenation (.) or string at MysqlTest.pm line 22.
Use of uninitialized value $hostname in concatenation (.) or string at MysqlTest.pm line 22.
Can't call method "prepare" on an undefined value at MysqlTest.pm line 30.
Coloreado en 0.002 segundos, usando
GeSHi 1.0.8.4
Un saludo, luis.