Perl + POO "Can't call method "prepare"
Publicado: 2012-09-29 12:17 @553
¡¡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.
Acá dejo el otro archivo donde invoco el objecto y los mensajes.
y a continuación el error en consola.
Un saludo, luis.
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.