我使用
从用户那里获取输入数据$input=<>;
但是当输入输入时它不会进入下一个过程它接受输入字符,但只在类型^z
时才会进入,但我想继续下一步按 Enter 。
答案 0 :(得分:4)
您提供的代码本身并没有按照您的说法执行。它只是读取一行然后继续前进。在标量上下文中,readline()
函数(使用尖括号<>
是一个快捷方式)是一个迭代器,并且当时读取一行直到文件句柄耗尽(它到达文件末尾)
有两件事可以解释这种行为:
$/
,因此不再需要换行符来表示行结束,@input = <>;
# or
($input) = <>;
在第一种情况下,它将一直读取,直到找到输入记录分隔符并返回要分配给$input
变量的(多行)字符串。您可以通过按下发送文件结尾来提前终止它:Windows中的Ctrl-Z或* nix中的Ctrl-D。
在第二种情况下,readline()
位于列表上下文中,并将一直读到它找到文件结尾,这就是上面讨论的内容。