Thread use verzögert ausführen: geht das? (18 answers)
Opened by Crian at 2004-07-21 17:18

Crian
 2004-07-22 12:17
#84712 #84712
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
[quote=ptk,22.07.2004, 10:02]Das schimpft sich "indirect object syntax" (siehe auch perldoc perlobj). Diese Syntax ist eigentlich fuer die Schreibweise
Code: (dl )
new Modul $args, ...
gedacht, damit man nicht
Code: (dl )
Module->new($args,...)
schreiben muss, aber man kann es auch anderweitig verwenden:
Code: (dl )
1
2
3
4
5
sub bla {
   warn "@_";
}

bla main 1, 2, 3;


Oder hast du eher wegen des "import" gefragt?[/quote]

Ja, ich fragte mich, ob import so etwas wie use und require und mir bisher nur entgangen ist. Außerdem war mir das mit der "indirect object syntax" nicht so klar (ich wusste, dass es das für new gibt und ich wusste auch, dass man nicht auf den Methodennamen new festgelegt ist, aber ich hab 2 und 2 nicht zusammengezählt ;-). [Außerdem mache ich gedanklich immer noch mehr Unterschiede zwischen oo / nicht-oo als Perl dies macht.]


[quote=ptk,22.07.2004, 10:02]
Quote
Edit: Ist es bei dieser Lösung

Code: (dl )
1
2
3
4
BEGIN {
  # handle parameters
}
use My::Module;


entscheidend, dass der BEGIN Block vor dem use ist? Jaja, ich probiers ja gleich aus ;-)

Ja. BEGIN-Bloecke und use-Statements werden sequentiell abgearbeitet.[/quote]

Ja, hab ich inzwischen auch festgestellt. Man muss es sich wohl so vorstellen, dass die BEGIN-Blöcke in der Reihenfolge ihres Auftretens ausgeführt werden und ein use Modul; die BEGIN-Blöcke des Moduls an der Stelle des use zwischen die ev. vorhandenen anderen BEGIN-Blöcke einfügt (jedenfalls in der Abarbeitungsreighenfolge).
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

View full thread use verzögert ausführen: geht das?