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 Zitieren
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/ Zitieren
Huwy Geschrieben 12. Mai 2010 Autor Geschrieben 12. Mai 2010 Wie war das mit Suffering from Buffering? Super - hat funktioniert. Dankeschön Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.