Eu sou novo aqui no forum, mais ja tem uns anos que prgramo em Perl, porem parei faz alguns anos pq estava programando só em PHP e Asp e resolvi retomar os estudos em Perl, porem pintou uma duvida.
É o seguinte: Tenho 3 arquivos de modulo perl .pm
São eles:
#PSP.pm package PSP; use strict; use warnings; use DBI; require Exporter; use Usuario; use Forum; our @ISA = qw (PSP::Usuario PSP::Forum); sub new { my ($cl, $self) = (shift, {}); $cl = ref($cl) || $cl; return bless $self, $cl; } sub mysqlConn { my ($host, $user, $pass, $db, $mycnf) = ('localhost', '', '', '`psp`', '/usr/local/mysql6/my.cnf'); my $dsn = "DBI:mysql:database=host=$host;database=psp;mysql_read_default_file=$mycnf"; my $dbh = DBI->connect($dsn, $user, $pass, {'RaiseError' => 1}) || die "Erro mysql " . $DBI::errstr; return $dbh; } ..... #Forum.pm package PSP::Forum; use strict; use warnings; use PSP; my ($db, $dbh) = ('`psp`', PSP->mysqlConn); sub new { my ($cl, $self) = (shift, {}); $cl = ref($cl) || $cl; return bless $self, $cl; } ..... #Usuario.pm package PSP::Usuario; use strict; use warnings; use PSP; my ($db, $dbh) = ('`psp`', PSP->mysqlConn()); sub new { my ($cl, $self) = (shift, {}); $cl = ref($cl) || $cl; return bless $self, $cl; } ...... #teste.pl #!/usr/bin/perl -w use PSP; print "Content-type: text/html\n\n";
Preciso usar as funções de PSP::Usuario e PSP::Forum em meus arquivos perl (.pl) só adcionado use PSP;, até ai normal,
porem não consgo usar as funções de PSP.PM em Forum.PM e Usuario.PM, acusa o erro de (Can't locate object method "mysqlConn" via package "PSP")
Agora vem o mais incrivel, oque não estou entendendo.
Se na PSP.pm eu fizer assim
use Usuario;
use Forum;
O erro vai ser : (Can't locate object method "mysqlConn" via package "PSP" in Forum.pm line 5)
Agora se eu fizer assim
use Forum;
use Usuario;
O erro vai ser : (Can't locate object method "mysqlConn" via package "PSP" in Usuario.pm line 5)
Em resumo o modulo que carregar primeiro é rei, o segundo não podera usar as funções de PSP.pm, pq isso ein?
Não consigo intender, onde esta o erro?
E o pior é que eu nessecito usar as funções de PSP.PM nos dois Modulos e não é só a PSP->mysqlConn() tem mais.
Alguem ai pode me exclarecer essa duvida?
Desde Já eu agradeço!!
Caracas Maluco ... Postei no local errado! Que falta de atenção a minha! Moderador Desculpa ai! Se der move pro lugar correto! Desculpa ai!
Edição feita por: Brasilio Thomazo, 24/10/2009, 07:54.