找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 2678|回复: 1

[问题求助] [ 已解决 ] 求助,perl如何键盘单字符输入就执行?

[复制链接]
发表于 2025-8-6 12:23:03 | 显示全部楼层 |阅读模式
本帖最后由 zzz19760225 于 2025-8-8 17:15 编辑

  1. $| = 1;
  2. a0:
  3. print ":";
  4. $a1 = <>;
  5. chomp $a1;
  6. print $a1;
  7. print "\n";
  8. goto a0;
  9. 输入+回车显
  10. :123
  11. 123
  12. :
复制代码
输入需要加回车,才能执行。
请问怎么输入就能执行,如choice单字符,就执行后续命令。(可设置为单1,2,3,4,5多字符,约定定量输入就执行,也可以)
谢谢大佬们!
-----------------------------我是分割线--------------------------------

  1. use strict;
  2. use warnings;
  3. use Term::ReadKey;

  4. # 设置原始输入模式
  5. ReadMode('cbreak');

  6. print "请输入字符(按q退出):\n";

  7. while (1) {
  8.     # 非阻塞读取输入
  9.     my $key = ReadKey(-1);
  10.    
  11.     if (defined $key) {
  12.         if ($key eq 'q') {
  13.             print "\n退出程序\n";
  14.             last;
  15.         }
  16.         print "输入的字符是: $key\n";
  17.     }
  18.    
  19.     # 稍微休眠,避免CPU占用过高
  20.     select(undef, undef, undef, 0.1);
  21. }

  22. # 恢复正常终端模式
  23. ReadMode('restore');

  24. 请输入字符(按q退出):
  25. 输入的字符是: 1
  26. 输入的字符是: 2
  27. 输入的字符是: 3
  28. 输入的字符是: 4
  29. 输入的字符是: 5
复制代码
发表于 2025-8-6 16:34:23 | 显示全部楼层
好像有一个叫 Term::ReadKey 的模块
很少用到这个功能,逃……

评分

参与人数 1技术 +1 收起 理由
zzz19760225 + 1 收到,谢谢!

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 00:54 , Processed in 0.015533 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表