Schrift
[thread]10417[/thread]

Class::Struct und @ISA

Leser: 3


<< >> 7 Einträge, 1 Seite
toby
 2007-09-19 01:19
#99632 #99632
User since
2006-04-14
66 Artikel
BenutzerIn
[default_avatar]
Hallo Perler und Perlerinen :)

wenn ich folgenden Perlcode ausführe

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/usr/bin/perl

{ package A;
use Class::Struct;
struct A => { a => '$',};

sub geerbte(){
print "geerbte Methode\n"
}
}

{ package B;
our @ISA = qw(A);
use Class::Struct;
struct B => { a => 'A', b => '$',};

sub eigene(){
print "eigene Methode\n"
}
}

my $b = B->new();

$b->eigene();
$b->geerbte();


bekomme ich vom Interpreter folgendes zurück:

Quote
struct class cannot be a subclass (@ISA not allowed) at ClassStruct.pl line 16


Ich kann mich errinern, dass ich irgendwo gelesen habe, dass Class::Struct - warumauchimmer - Vererbungen mit @ISA verbietet. :(

- Warum? Was ist so schlecht an einer Vererbung für Class:Struct?
- Wie kann ich trotzdem von einer Klasse, die mit Class::Struct entworfen wurde erben? Ich hab da was vom Exporter gehört, werde aber aus der Doku (perldoc Exporter) nicht schlau. Hat da jemand ein einfacheres Beispiel parat?

Danke! :)
Tobias
renee
 2007-09-19 01:20
#99633 #99633
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Was möchtest Du denn erreichen?
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
toby
 2007-09-19 01:25
#99634 #99634
User since
2006-04-14
66 Artikel
BenutzerIn
[default_avatar]
Hi renee,

ich möchte gerne in der Klasse B von der Klasse A erben. So weit komme ich aber nicht, da schon der Versuch @ISA zu initialisieren abgewiesen wird. Ohne ISA kann ich aber nicht erben :(

Hast Du da ne Idee?

THX
Tobias
renee
 2007-09-19 01:30
#99635 #99635
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Wofür brauchst Du Class::Struct? Vielleicht wäre Moose ein geeigneter Ersatz...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
toby
 2007-09-19 01:40
#99637 #99637
User since
2006-04-14
66 Artikel
BenutzerIn
[default_avatar]
Hallo rene,

habe soeben noch das Beispiel von oben sprechender gemacht.

Class::Struct wollte ich nutzen, um für kleinere Projekte schneller/einfacher OOP machen zu können. Habe Moose gerade kurz angeschaut (ich kenne da auch z.B. den MethodMaker), das Problem ist aber, der eingebetete Interpreter, der mir zur verfügung steht ist Perl 5.6 und ich darf nur Core verwenden. Keine extra/externe Module (ist doof, ist aber so :( ).

Deswegen meine Frage, ob/wie man unter Class::Struct vererben kann. Ich habe gelesen, dass es unter Umständen mit Exporter geht, wollte hier aber bei Euch Profis noch mal nachfragen :)

CU
Tobias
Struppi
 2007-09-19 03:42
#99638 #99638
User since
2006-02-17
628 Artikel
BenutzerIn
[Homepage]
user image
Bist du sicher das du Class::Struct brauchst?
vielleicht eher Class::Accessor?
ptk
 2007-09-19 10:14
#99641 #99641
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Ich würde von der Benutzung von Class::Struct abraten. Lieber Class::Accessor oder accessors. Diese Module sind klein genug, dass man sie auch in die eigene Anwendung einbetten kann.
<< >> 7 Einträge, 1 Seite



View all threads created 2007-09-19 01:19.