Zum Inhalt springen

Perl Klassen Frage!


Empfohlene Beiträge

Hallo,

ich hebe ein kleines Prob mit Perl.

und zwar habe ich eine Klasse an die ein $dbh als referenz aus der Basis datei übergeben wird nun möchte ich natürlich mit dieser referenz in der Klasse arbeiten ich weise die referenz dann z.b. $self->{'dbh'} zu und möchte so einige SQL aktionen tätigen mir ist bisher leider nur noch nicht klar in wie weit ich in dem package dann noch use DBI einbinden muss ich wahr bisher der Meinung das wenn ich eine eigene Klasse mache in einem föllig abgeschottetem berreich arbeite.

Ich bitte also um hilfreiche tips und ratschläge wie ich das Prob in denn grif bekomme. :-)

Gruß Badgott

Link zu diesem Kommentar
Auf anderen Seiten teilen

ich hebe ein kleines Prob mit Perl.

Na, dann wollma mal. :)

Zuerst jedoch: Bitte verwende zukuenftig Satzzeichen. Das erleichtert den Lesen/Verstehen Prozess um einiges. ;)

und zwar habe ich eine Klasse an die ein $dbh als referenz aus der Basis datei übergeben wird

Das halte ich fuer keine gute Idee. Du solltest die Verbindung in deinem Package selbst aufbauen. Wenn du naemlich innerhalb deines Packages die Verbindung zu der Datenbank schliesst und ausserhalb des Packages wieder versuchst auf die DB zuzugreifen... -> *BUMM*

mir ist bisher leider nur noch nicht klar in wie weit ich in dem package dann noch use DBI einbinden muss ich wahr bisher der Meinung das wenn ich eine eigene Klasse mache in einem föllig abgeschottetem berreich arbeite.

In Perl arbeitest du immer in einem Package. Uebrigens sind Packages keine Klassen, auch wenn es meistens so aussieht. ;) Das allererste Package, das durch den Interpreter laeuft heisst "main".

Man unterscheidet hier die normalen Module von den Pragmas. Pragmas sind Anweisungen wie "use strict/warnings/integer/blib/"... Pragmas sind tatsaechlich nur in dem Package aktiv wo du sie aufrufst. Anders als normale Module wie z.B. DBI. Bevor dein Script ausgefuehrt wird hat der Perlinterpreter dein Script bereits auf Fehler und aehnliches untersucht und auch _ALLE_ use/require Anweisungen durchgefuehrt. Ergo -> use/require werden vor dem eigentlichen Script ausgefuehrt und sind in deinem Prozess ueberall verfuegbar.

Ich bitte also um hilfreiche tips und ratschläge wie ich das Prob in denn grif bekomme. :-)

Nun.. Ich weiss nicht ob ich deine Frage schon beantwortet habe, aber hier ein kleines Script, dass das ganze etwas veranschaulicht:

#!/usr/bin/perl -w


# Das Paket Ein::Test

package Ein::Test;


# Hier wird eine Variable ohne local/my/our einen Wert zugewiesen.

# Dies ist nur moeglich wenn das strict Pragma nicht befolgt wird.

$x = "Ich bin das Paket Ein::Test und folge nicht dem strict Pragma\n";

print $x;


# LWP::UserAgent ist in diesem Paket nicht verfuegbar.

# Es wurde bereits schon in main geladen. - UNSAUBER!

sub new { return bless { dbh => LWP::UserAgent->new() }, shift; }


# Hier faengt wieder der 'normale' Perlcode an

package main;


# das strict Pragma und zwei Module laden

use strict;

use LWP::UserAgent;

use Data::Dumper;


# Die Methode 'new' aus 'Ein::Test' aufrufen und "Ein::Test"

# als Argument mitgeben (->)

# Danach die Datenstrucktur von $test betrachten.

my $test = Ein::Test->new();

print Dumper $test;

Falls du noch mehr Infos benoetigst, dann empfehle ich dir die manpage 'permodlib' und falls noch Fragen offen sind: Nur raus damit. :)

mit freundlichen Gruessen

iscariot

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...