Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

Re: Capturing Arrow Keys Input

by Anonymous Monk
on Sep 30, 2009 at 02:06 UTC ( [id://798225]=note: print w/replies, xml ) Need Help??


in reply to Capturing Arrow Keys Input

I tried to do  cat -vet, but it also gave me something like '^[[A'.

How do I translate this to something that Term::ReadKey can understand?

Replies are listed 'Best First'.
Re^2: Capturing Arrow Keys Input
by jakobi (Pilgrim) on Sep 30, 2009 at 09:02 UTC

    Extending utilitarians answer to the opener below(!?):

    ^[ is the escape 0x1b
    [
    A.

    ^[[ together is the 'CSI' char sequence introduction sequence. Some terminals might write the 8th-bit-variant using a single character of 0x9b (which is an invalid char in utf-8).

    If cat -vet's way to render control chars makes reading too hard, try something like hd or od -x instead and check the hex representation instead. If you see the generated codes and have played a bit with them to gain an understanding, do consider checking the cpan for modules abstracting some of this historic cruft.

    Especially as terminal settings come into play - unless it's either throw away code or you can guarantee that the code sequences are unchanged where-ever you run. Seeing the actual sequences themselves is helpful and IMHO required to gain an understanding, albeit it's not very portable...

    btw: has anyone a known good way to strip tty escape sequences from a typescript created by script other than a 80% quick and dirty guesswork solutions like unescape.pl (which I'd call an example of throw-away code :))?

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://798225]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others wandering the Monastery: (4)
As of 2024-04-19 14:55 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found