Anzeige:
Ergebnis 1 bis 3 von 3

Thema: Perl und use module Problem

  1. #1
    Registrierter Benutzer
    Registriert seit
    03.02.2001
    Beiträge
    56

    Perl und use module Problem

    Hallo,

    ich habe ein grosses Problem mit perl und use.

    Ich habe 2 packages in perl. In jedem package hab ich Funktionen, welche ich in dem anderen Modul brauche. Ich brauche also jeweils nen use des anderen Moduls.

    package a;
    use b;
    sub bla() {
    }
    ---
    package b;
    use a;
    bla();

    Ich nutze das ganze als Website, also als cgi-scipt.

    Ich bekomme aber folgende Meldung:

    "bla" is not exported by the a module
    Can't continue after import errors at b.pm line 2

    Geht sowas oder wie kann man diesen Fehler umgehen ?

    Vielen Dank
    Torsten

  2. #2
    Registrierter Benutzer Avatar von Molaf
    Registriert seit
    15.11.2004
    Beiträge
    127
    Der Fehler müsste ja in einer Subfunktion von b.pm auftauchen, und da müsstest Du auch ganz zu Anfang use a; eingeben.

  3. #3
    Registrierter Benutzer
    Registriert seit
    19.08.2004
    Beiträge
    404
    Hi,

    Da gibt es zwei Möglichkeiten - bei der ersten musst Du den Klassenbezug (bzw. den Bezug auf das package) direkt herstellen... Das bedeutet, dass Du alle Methoden und Funktionen aus Klasse 'a' so aufrufst:
    Code:
    a::Sub1();
    die andere Möglichkeit, Subfunktionen aus a in main verfügbar zu machen ist, die entsprechenden Funktionen zu exportieren:

    Datei: a.pm
    PHP-Code:
    #!/usr/bin/perl
    package a;
    use 
    strict;
    use 
    warnings;

    use 
    Exporter;
    our @ISA    qw(Exporter);
    our @EXPORT qw(Sub1);

    sub Sub1()
    {
      print 
    "Hallo Welt\n";

    Datei: main.pl
    PHP-Code:
    #!/usr/bin/perl
    use strict;
    use 
    warnings;
    use 
    a;

    Sub1();     # Funktioniert - da in a exportiert
    a::Sub1();  # Funktioniert natürlich auch noch 
    Geändert von michael.sprick (26-10-2005 um 11:02 Uhr)

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •