Thread Aufruf einer sub und Parameter
(16 answers)
Opened by bianca at 2018-03-04 14:39
Guten Tag!
Bei der Arbeit mit dem Modul Crypt::LE übergibt man im Kommando ->accept_challenge() den Namen einer sub. Ich möchte das gern anders schreiben. Denn wenn ich die sub mit sub process_challenge {} definiere kann ich auf Variablen außerhalb der sub nicht zugreifen. Übergeben kann ich sie aber auch nicht, weil der Aufruf \&process_challenge lautet und in $_[0] eine Hash Referenz übergeben wird. Die würde ich dann ja mit meinen eigenen Variablen überschreiben. Wenn ich allerdings andersherum die sub mit my $process_challenge = sub {}; definiere habe ich zwar Zugriff auf die Variablen außern aber es funktioniert der Aufruf ->accept_challenge(\&process_challenge) nicht mehr. Nochmal Zusammenfassung: 1. Dies kompiliert nicht, weil innen Variablen fehlen: Code (perl): (dl
)
1 2 3 4 5 6 my $foo = 'bar'; sub process_challenge { my $challenge = shift; # hier fehlt $foo } $le->accept_challenge(\&process_challenge); 2. Hierbei meldet das Modul Quote Code (perl): (dl
)
1 2 3 4 5 6 my $foo = 'bar'; my $process_challenge = sub { my $challenge = shift; # hier ist $foo zwar da aber das Modul muckt }; $le->accept_challenge(\&process_challenge); Ich weiß nicht, wie man das anders schreiben kann und ich weiß auch nicht, wonach ich googeln müsste, um hierfür eine Lösung zu finden Was ist hier die sauberste Lösung? Kommt nicht auf Speed und CPU an. Danke! 10 print "Hallo"
20 goto 10 |