|
From: Andrew DeFaria on 31 Jan 2008 18:26 I have an example Perl script that uses Term::ReadLine::Gnu to provide ReadLine support with command history: #!/usr/local/bin/perl use Term::ReadLine; use Term::ReadLine::Gnu; my $term = new Term::ReadLine "test"; while () { $_ = $term->readline ("Command:"); last if !$_; print "Read command: $_\n": } # while exit; When run it runs fine, doesn't do much, but dutifully reads commands and stores them in the history. IOW up arrow works to recall commands and I can edit them. IOW Term::ReadLine::Gnu is installed properly and functioning. Now I wish to debug this script. So I do perl -d testReadLine.pl. Initially the Perl debugger works. I can do commands like l for list or s for step. However, as soon as I return from the new Term::ReadLine the debugger is confused. No command does anything. I fully suspect that the problem lies in the fact that both my Perl script and the Perl debugger are fighting over STDIN/STDOUT and confusing each other. The question is how to get them both to play nice. Suggestions? Workarounds? Solutions?
From: Ben Morrow on 31 Jan 2008 18:46 Quoth Andrew DeFaria <adefaria(a)gmail.com>: > I have an example Perl script that uses Term::ReadLine::Gnu to provide > ReadLine support with command history: > > #!/usr/local/bin/perl > use Term::ReadLine; > use Term::ReadLine::Gnu; > <snip> > > When run it runs fine, doesn't do much, but dutifully reads commands > and stores them in the history. IOW up arrow works to recall commands > and I can edit them. IOW Term::ReadLine::Gnu is installed properly and > functioning. > > Now I wish to debug this script. So I do perl -d testReadLine.pl. > Initially the Perl debugger works. I can do commands like l for list > or s for step. However, as soon as I return from the new > Term::ReadLine the debugger is confused. No command does anything. > > I fully suspect that the problem lies in the fact that both my Perl > script and the Perl debugger are fighting over STDIN/STDOUT and > confusing each other. The question is how to get them both to play > nice. It may also be because the debugger is also using Term::Readline::Gnu. I don't know if the underlying readline library can cope with two users at once. You may want to try the debugger options TTY and ReadLine (see perldoc perldebug). Ben
|
Pages: 1 Prev: Can't get PAR packager to run pp Next: FAQ 1.3 Which version of Perl should I use? |