如何让Perl为管道输入和键盘输入使用不同的句柄?
发布时间:2020-12-15 22:00:11 所属栏目:大数据 来源:网络整理
导读:我有一个处理管道的Perl脚本.在某些时候,我希望脚本暂停并要求用户键盘输入.我的$input = STDINgt ;;不起作用.它只是从管道中读取下一行.如何让Perl使用不同的句柄进行管道输入和键盘输入? 解决方法 如果您使用的是Unix平台,则可以打开文件句柄到/ dev / tt
我有一个处理管道的Perl脚本.在某些时候,我希望脚本暂停并要求用户键盘输入.我的$input =< STDIN> ;;不起作用.它只是从管道中读取下一行.如何让Perl使用不同的句柄进行管道输入和键盘输入?
解决方法
如果您使用的是Unix平台,则可以打开文件句柄到/ dev / tty(或使用
IO::Pty ).使用tty的一个很好的例子是“测试程序是否以交互方式运行”示例:
http://pleac.sourceforge.net/pleac_perl/userinterfaces.html
您还应该考虑通过 这是一个例子. It’s not the best style (doesn’t use 3-arg form of use autodie; # Yay! No "or die '' " use Term::ReadKey; open(TTYOUT,">/dev/tty"); print TTYOUT "Password?: "; close(TTYOUT); open(TTY,"</dev/tty"); ReadMode('noecho',*TTY); $password = ReadLine(0,*TTY); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |