Schrift
[thread]6249[/thread]

Variablen übergeben (Seite 2)



<< |< 1 2 3 >| >> 29 Einträge, 3 Seiten
jan10001
 2004-05-12 19:53
#82255 #82255
User since
2003-08-14
962 Artikel
BenutzerIn
[default_avatar]
@format_c
Quote
Kannst du dich vielleicht etwas spezieller ausdrücken?
Sind beide Programme in Perl geschrieben?

Wenn du Modulare software schreiben willst und beide Programme sind in Perl, dann kannst du doch wirklich Modular schreiben oder gleich Objektorientiert. Da OOP ja den Ansatz der Modularität verfolgt.
Die Programme werden in Perl geschrieben, allerdings wird es auch Teile geben wo von Perl zu PHP Werte übergeben werden. (z.B. um Confixx Funktionen der Software zugänglich zu machen)
Zu OOP damit habe ich meine Probleme da ich durch die ganze Vererbungsgeschichte nicht richtig durch blickte. Wenn jemand einen guten Buchtipp dazu hat kann er mir diesen gern posten.
Marcus
 2004-05-12 20:51
#82256 #82256
User since
2004-05-03
18 Artikel
BenutzerIn
[default_avatar]
[quote=jan10001,12.05.2004, 17:53]@format_c

Zu OOP damit habe ich meine Probleme da ich durch die ganze Vererbungsgeschichte nicht richtig durch blickte. Wenn jemand einen guten Buchtipp dazu hat kann er mir diesen gern posten.[/quote]
Hallo,

Buchtipp: http://www.oreilly.de/catalog/lrnperlormger/


Gruß Marcus
Gast Gast
 2004-05-12 21:19
#82257 #82257
Vererbung ist unter Perl mehr als einfach ...
Code: (dl )
1
2
3
4
5
package Foo;
@ISA = qw(
   Bar
   Baz
);


und schon sind alle Methoden der Module Bar und Baz an das Modul Foo vererbt.
ptk
 2004-05-12 21:30
#82258 #82258
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Vielleicht solltest du dir lieber mixins als die klassische Vererbung angucken. Siehe auch das CPAN-Modul "mixin".
Gast Gast
 2004-05-12 22:10
#82259 #82259
[quote=ptk,12.05.2004, 19:30]Vielleicht solltest du dir lieber mixins als die klassische Vererbung angucken. Siehe auch das CPAN-Modul "mixin".[/quote]
Das Ding hat nur den kleinen - aber entscheidenden - Nachteil das es in der Standard-Distribution nicht enthalten ist.
Warum aber auch mit zusätzlichem Modulen arbeiten wenn doch Perl bereits alles zur Verfügung stellt?
Crian
 2004-05-13 15:23
#82260 #82260
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
[quote=Dieter,12.05.2004, 19:19]Vererbung ist unter Perl mehr als einfach ...
Code: (dl )
1
2
3
4
5
package Foo;
@ISA = qw(
   Bar
   Baz
);


und schon sind alle Methoden der Module Bar und Baz an das Modul Foo vererbt.[/quote]
use base

Code: (dl )
use base qw(Auto Boot);


ist Abkürzung für

Code: (dl )
1
2
3
4
5
BEGIN {
our @ISA = qw(Auto Boot);
require Auto:
require Boot;
}
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
ptk
 2004-05-13 17:40
#82261 #82261
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
[quote=Crian,13.May.2004, 13:23]
Code: (dl )
use base qw(Auto Boot);


ist Abkürzung für

Code: (dl )
1
2
3
4
5
BEGIN {
our @ISA = qw(Auto Boot);
require Auto:
require Boot;
}
[/quote]
Im Pod steht "roughly similar". Z.B. wird "require" nicht ausgefuehrt, wenn die entsprechende Klasse anscheinend existiert. Das macht einen Unterschied, wenn sich eine Klasse nicht in einer eigenen Datei befindet.
Crian
 2004-05-13 18:24
#82262 #82262
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
frech, das "ist Abkürzung für" habe ich wörtlich aus dem Kamelbuch übernommen tztztz
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Gast Gast
 2004-05-13 18:45
#82263 #82263
Bisher habe ich die zu verwenden Module immer im Hauptprogramm geladen
Code: (dl )
1
2
3
use Modul::Foo;
use Modul::Bar;
use Modul::Baz;

Vererbung funktioniert dann im Package 'Foo' mit
Code: (dl )
our @ISA = qw(Bar, Baz);

Wenn ich aber nun eine 'Superklasse' erstellen will und im Hauptprogramm schreibe:
Code: (dl )
use Modul::Foo;

sowie im Package 'Foo' schreibe:
Code: (dl )
1
2
3
use Bar;
use Baz;
our @ISA = qw(Bar, Baz);

dann werden die Dateien Bar.pm und Baz.pm nicht gefunden obwohl sie sich im selben Verzeichnis wie Foo.pm (also im Verzeichnis 'Modul' befinden.

Was mache ich da falsch?
ptk
 2004-05-13 19:22
#82264 #82264
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Die use-Kommandos beziehen sich niemals auf einen relativen Pfad (zum Skript oder zum Modul), sondern es werden immer die Verzeichnisse aus @INC abgearbeitet.
<< |< 1 2 3 >| >> 29 Einträge, 3 Seiten



View all threads created 2004-05-11 20:27.