我想在Perl程序中每行输入2个输入。
4 3
3 1
5 7
我们可以通过这个声明在Ruby中做到这一点
a,b=gets.split.map &:to_i
答案 0 :(得分:6)
如果这来自STDIN
,您需要逐行阅读,split
每行按空格
while (<STDIN>)
{
my ($first, $second) = split;
# Do what you need with $first and $second
}
这使用默认值split来分割默认变量$_
(分配给哪个输入)' '
,代表任意数量的空间。因此上面split;
与split ' ', $_;
相同。每个输入行末尾的换行符都将被删除。
要阅读输入和菱形运算符 <>
,请参阅I/O Operators in perlop,以及默认输入和模式搜索空间变量{{ 1}}见General Variables in perlvar。
检查用户输入是另一回事。要检查这些确实是数字,例如,核心模块Scalar::Util中的一个好工具是$_
。
我不知道你的节目中还有什么,但我建议总是从
开始looks_like_number