Thread Referenzen von Variablen Funktionen übergeben die noch nicht da sind. (7 answers)
Opened by unwichtig at 2012-02-25 19:49

Linuxer
 2012-02-25 19:58
#156430 #156430
User since
2006-01-27
3890 articles
HausmeisterIn

user image
Hi,

Code (perl): (dl )
my %whatever = ( -command => go($b) );  # läuft sofort los


go() muss sofort loslaufen, weil Du es so programmiert hast.
go() wird ausgeführt und die Rückgabe wird als "Value" zu "-command" verwendet.

Richtiger in Deinem Sinne sollte es wahrscheinlich so sein:

Code (perl): (dl )
1
2
3
4
5
6
7
# wenn nur go() ohne argumente aufgerufen werden soll
# Referenz auf go() wird direkt verwendet
my %whatever = ( -command => \&go );  # läuft sofort los

# wenn Du Argumente mitgeben willst, kannst Du das so tun:
# Referenz auf anonyme Subroutine, die ihrerseits go() mit Argument $b aufruft
my %whatever = ( -command => sub { go($b) } );  # läuft sofort los

edit: \&go() - () ==> \&go :/edit
Last edited: 2012-02-25 20:52:34 +0100 (CET)
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!

View full thread Referenzen von Variablen Funktionen übergeben die noch nicht da sind.