[Cascavel-pm] Atributos
Marcia Henke
mhenke em inf.ufrgs.br
Terça Fevereiro 25 14:32:52 CST 2003
Olá pessoal,
estou tendo um probleminha com o código que estou implementando.
Eu ainda não entendi, como o Perl se comporta quando trabalhando orientado a
objeto.
Tenho o pacote LogManager.pm :
package LogManager;
my %month = ();
sub new {
my $type = shift;
my $self = {};
readNameFile();
$self->{month} = \%month;
bless $self;
return $self;
}
sub readNameFile {
open (FILE, "< /home/monitor/novo/nameFile.dat") or die "Impossível abrir
nameFile.dat:$!";
while (<FILE>) {
chomp;
($value, $name) = split(" ", $_, 2);
if ($value) {
$month{$value} = $name;
}
}
close (FILE);
}
sub getName {
my ($this, $value) = @_;
$value = $_[1];
return $month{$value};
}
1;
####################
Tenho um pacote de controle ServerController.pm:
package ServiceController;
use LogManager;
@ISA = ("LogManager");
$objLog = new LogManager();
sub new {
my $type = shift;
my $self = {};
bless $self;
return $self;
}
####################
E uma classe Principal (teste.pl) que contém minha Lógica, onde estou testando
alguns metodos e estou tendo retorno "vázio":
#!/usr/bin/perl -I/home/monitor/novo
$valueSERVICES = ServiceController->getValue($flagFileSERVICES);
print "$valueSERVICES\n";
$file1 = ServiceController->getName($valueSERVICES);
print $file1 . "\n";
O problema é que não consigo obter o nome do arquivo, pois pelo que entendi
quando chamo métodos herdados de outros pacotes como o getName(), que é do
LogManager.pm, que é herdado pelo ServiceController.pm ele se perde e não acha
o valor e nome que são atributos do pacote.
Como trato isso em perl.
Espero ter conseguido me expressar.
Agradeço atenção e toda ajuda é bem vinda
Márcia
Mais detalhes sobre a lista de discussão Cascavel-pm