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>&nbsp;&nbsp; my $class = &quot;filha&quot;;<br><br>&nbsp;&nbsp; $class-&gt;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>&nbsp;&nbsp; my $class = &quot;classe&quot;;<br>&nbsp;&nbsp; my $self = {&quot;a&quot; =&gt; &quot;b&quot;};<br>&nbsp;&nbsp; bless ($self, $class);
<br>}<br><br>sub func {<br>&nbsp;&nbsp; my $self = shift;<br><br>&nbsp;&nbsp; print $self-&gt;{&quot;a&quot;};<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>&nbsp;&nbsp; my $class = &quot;classe&quot;<br><br>eu deveria fazer<br>sub new {<br>&nbsp;&nbsp; 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>&quot;Café clareia as idéias, apesar de amarelar os dentes&quot; <br>-- Bolha