Boa noite, pessoas!<br><br>Primeiramente, tenho 2 classes: <a href="http://classe.pm">classe.pm</a> e <a href="http://filha.pm">filha.pm</a>. A classe <a href="http://filha.pm">filha.pm</a> é filha de <a href="http://classe.pm">
classe.pm</a>. Seguem os códigos:<br><br>=========<br>package filha;<br><br>use classe;<br>our @ISA = qw(classe);<br><br>use vars qw(@ISA);<br>sub new {<br> my $class = "filha";<br><br> $class->SUPER::new;
<br>}<br>1;<br>==========<br><br>==========<br>#!/usr/bin/perl<br><br>package classe;<br><br>use strict;<br><br>sub new {<br> my $class = "classe";<br> my $self = {"a" => "b"};<br> bless ($self, $class);
<br>}<br><br>sub func {<br> my $self = shift;<br><br> print $self->{"a"};<br>}<br><br>1;<br>========<br clear="all"><br>Esse código, pelo que testei, funciona perfeitamente, por exemplo, quando eu instancia uma filha e chamo o método func, presente na classe pai.
<br>No entanto, pelo que me resta de lembranças de quando fucei OO em perl, ao invés de fazer<br>sub new {<br> my $class = "classe"<br><br>eu deveria fazer<br>sub new {<br> my $class = shift;<br><br>O problema é que usando o shift não funciona, ele me retorna um mensagem de erro quando tento instanciar a filha (pois ele não conhece um SUPER).
<br>Os arquivos problemáticos estão anexados.<br><br>Gostaria que alguém me ajudasse dizendo o que estou fazendo de errado ou se algo mudou e eu não percebi.<br><br>Abraços a todos! Agradeço desde já!<br><br>Bolha.<br><br>
-- <br>"Café clareia as idéias, apesar de amarelar os dentes" <br>-- Bolha