ingo: Klassen & objekte ??

Hallo,

ich versuche mich grad in Perl OOP. Kann ich (wie ??) auf eine Funktion/sub der aufrufenden Klasse (ist eigentlich keine Klasse) zugreifen.

Ich habe eine Anwendung machwas.pl welche eine Ausgabe hat.

use test;
ausgabe ("hallo")
$mytest=new test();

sub ausgabe
{
 $text=@_;
 print $text;
}

Diese nutzt eine test.pm

package test;
sub new {
 my $Objekt = shift;
 my $Referenz = {};
 bless($Referenz,$Objekt);
 return($Referenz);
}

sub machwas {
...Wie kann ich von hier aus auf "ausgabe" zugreifen?
...ausgabe "hallo");
}

Ich denke das beim new aufruf eine Referenz mitgegeben wird, wie komme ich im Package daran? Wenn dem nicht so ist wie kann ich die übergeben.

Gruß Ingo

  1. Hallo ingo,

    ich versuche mich grad in Perl OOP. Kann ich (wie ??) auf eine
    Funktion/sub der aufrufenden Klasse (ist eigentlich keine Klasse)
    zugreifen.

    Das erste Argument, das Perl Methoden uebergibt, ist die
    Objekt-Referenz.

    Diese nutzt eine test.pm

    package test;
    sub new {
    my $Objekt = shift;
    my $Referenz = {};
    bless($Referenz,$Objekt);

    Das ist so nicht richtig. Richtiger:

    $Referenz = bless($Referenz,ref($Objekt)||$Objekt);

    return($Referenz);
    }

    Bis hierhin ok ;)

    sub machwas {
    ...Wie kann ich von hier aus auf "ausgabe" zugreifen?
    ...ausgabe "hallo");
    }

    sub machwas {
      my $self = shift; # Referenz auf die Objekt-Instanz
      $self->ausgabe('blahr');
    }

    Grüße,
     CK

    --
    Fatal! Ich kann kein Reserve-Offizier mehr sein!