Huwy Geschrieben 12. Mai 2010 Geschrieben 12. Mai 2010 Hallo zusammen, ich habe mal wieder eine Verständnisfrage. Ich habe eine Art Anmeldemaske - in diesem Fall etwas vereinfacht. use Term::ReadKey; use strict; use warnings; my $passphrase; print 'Domain: '; chomp(my $domain = <STDIN>); print 'User: '; chomp(my $user = <STDIN>); [COLOR="Red"]print "Enter password: ";[/COLOR] &getpassword(); print "\nTest: $domain $user $passphrase"; # Sub: Passwort eingeben sub getpassword { ReadMode 'raw'; while (ord(my $key = ReadKey(1)) != 13) { $passphrase.=$key; print "*"; } ReadMode 'restore'; return $passphrase; } Warum wird der Rot markierte "print" erst nach der Subroutine ausgeführt? Und alle "print" nach diesem erst, nachdem ich das Passwort mit Enter bestätigt habe? Das Skript läuft auf einem Win XP Prof 32Bit Rechner. Kann das jemand vielleicht mal bei sich testen? Oder habe ich einfach einen Fehler übersehen? Ich habe die Befürchtnis, dass das ganze mit dem ReadKey zusammenhängt, aber ich kann es mir nicht wirklich erklären. Kann ich meine schönen Sternchen doch nicht verwirklichen? Viele Grüße
lupo49 Geschrieben 12. Mai 2010 Geschrieben 12. Mai 2010 Vielleicht hilft ein flush'n des Ausgabebuffers nach der print-Anweisung. http://desk.stinkpot.org:8080/tricks/index.php/2006/02/flush-perls-print-buffer/
Huwy Geschrieben 12. Mai 2010 Autor Geschrieben 12. Mai 2010 Wie war das mit Suffering from Buffering? Super - hat funktioniert. Dankeschön
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden