Schrift
[thread]8028[/thread]

@_? (Seite 2)

Leser: 1


<< |< 1 2 >| >> 15 Einträge, 2 Seiten
bloonix
 2006-05-30 16:51
#66709 #66709
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
Jetzt bringt ihr zwei mich aber in Erklärungsnot. Ich wollte damit nur
ausdrücken, dass wenn man eine Methode aufruft, diese nicht einfach
mittels my $rueckgabewert = methode(); aufgerufen werden kann,
da eine Methode als erstes Argument den Klassennamen erwartet.
Vielleicht habe ich mich etwas unglücklich ausgedrückt - passiert schonmal
öfters -, sorry =)\n\n

<!--EDIT|opi|1148993552-->
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
pktm
 2006-05-30 19:12
#66710 #66710
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
[quote=opi,30.05.2006, 14:51]Jetzt bringt ihr zwei mich aber in Erklärungsnot. Ich wollte damit nur
ausdrücken, dass wenn man eine Methode aufruft, diese nicht einfach
mittels my $rueckgabewert = methode(); aufgerufen werden kann,
da eine Methode als erstes Argument den Klassennamen erwartet.
Vielleicht habe ich mich etwas unglücklich ausgedrückt - passiert schonmal
öfters -, sorry =)[/quote]
Hm, wie ist das denn dann mit exportierten Methoden?
CGI.pm exportier z.B. bei use CGI qw/:standard/; soclhe Dinge wie header(), die dann auch ohne Objekt aufgerufen werden können (trotzdem ist es eine Klassenmethode von CGI.pm).
http://www.intergastro-service.de (mein erstes CMS :) )
bloonix
 2006-05-30 19:52
#66711 #66711
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
[quote=pktm,30.05.2006, 17:12]Hm, wie ist das denn dann mit exportierten Methoden?
CGI.pm exportier z.B. bei use CGI qw/:standard/; soclhe Dinge wie header(), die dann auch ohne Objekt aufgerufen werden können (trotzdem ist es eine Klassenmethode von CGI.pm).[/quote]
Ein Blick in CGI.pm verät, das dann ein Objekt erzeugt wird... wenn ich das
so richtig verstehe.

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
sub header {
my($self,@p) = self_or_default(@_);
....
....
}

sub self_or_default {
return @_ if defined($_[0]) && (!ref($_[0])) &&($_[0] eq 'CGI');
unless (defined($_[0]) &&
(ref($_[0]) eq 'CGI' || UNIVERSAL::isa($_[0],'CGI')) # slightly optimized for common case
) {
$Q = $CGI::DefaultClass->new unless defined($Q);
unshift(@_,$Q);
}
return wantarray ? @_ : $Q;
}
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
pq
 2006-05-30 19:52
#66712 #66712
User since
2003-08-04
12209 Artikel
Admin1
[Homepage]
user image
interne magie von CGI.pm. es wird in jedem fall ein objekt kreiert und in der
methode nachgeschaut, ob sie mit oder ohne objekt aufgerufen wurde.
wenn ohne, wird das im hintergrund erzeugte objekt verwendet.
ob man das nun schön und sauber nennen soll, ist eine andere frage.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
GwenDragon
 2006-05-30 20:27
#66713 #66713
User since
2005-01-17
14835 Artikel
Admin1
[Homepage]
user image
Na ja, das funktionsorientiert Interface von CGI.pm ist nett, spart Schreibarbeit. Aber es lehrt nicht von Anfang an objektorientiert zu arbeiten.
Leider lernen aber viele Perl als Abkürzungssprache kennen und CGI.pm mit dem funktionsorientierten Interface kommt der Faulheit entgegen. Und läßt Fallen entstehen, die sich durch Projekte ziehen können. Gibts.
<< |< 1 2 >| >> 15 Einträge, 2 Seiten



View all threads created 2006-05-29 21:17.