PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Viel zu schlaues Perl?? Was ist da los



baumgartner
30-05-2005, 13:02
Hallo Leute hab gerade mit einem Script begonnen um muss feststellen das es eigentlich schon mehr kann als ich wollte !!

Dieses Script liest zeichenweise die eingabe von Stdin ein und gibt dies wieder aus. alle eingaben werden in der skalaren variablen $in_cmd_line gespeichert.
Das tolle hierbe ist das seltsamerweise mit den Pfeiltasten im text navigiert werden kann und " Zeichen überschrieben werden können!!!"
Da stellt sich mir doch die Frage warum man Zeichen überschreiben kann. euch nicht???


#!/usr/bin/perl -w

use Term::ReadKey;
use strict;

sub get_STDIN {
# subroutine to load keys from the keyboard
ReadMode('cbreak');
my $char=ReadKey(0);
last unless defined $char;
ReadMode('normal');
return $char;
}

# Main Vars
my $char="";
my $in_cmd_line="";

################
### MainLoop
################
print "Eingabe: ";

while(1){
last if ($char eq "\n");
$in_cmd_line .= $char;
$char=get_STDIN;
print $char;
# print "\tdurch\n";

}

print "\nGesamt war: $in_cmd_line\n";


MFG Baumi

klewan
30-05-2005, 14:04
ähhhm liegt an der Term::ReadKey ein backspace is nun mal auch n key
und ein \b löscht nun mal in deinem terminal das vorherige zeichen

warum machst nich sowas (wenns shcon perl ist):



while(<STDIN>) {
print $_;
}