我是Perl的新手。如何读取在Perl中输入的同一行上的两个整数? 例如:
$n=<>;$k=<>;
print $n + ";" + $k
输入是:
2 3
输出如下:
2
请帮忙。
答案 0 :(得分:1)
<>
运算符每次迭代读取一条记录。记录通常以换行符分隔(\n
)。在这种情况下,最简单的解决方案是将一行读作记录,并在空格上分割:
chomp(my $line = <>);
my ($n, $k) = split " ", $line;
print "$n;$k\n";
作为split
分隔符的简单单个空格在split
内是特殊的,以删除前导空格并将分割模式视为/\s+/
,这通常正是您想要的这种情况(对任意数量的空格有一点默认容差)。
如果您更喜欢对输入的格式更严格,只有在将单个空格字符用作拆分分隔符时才会发生拆分,请将拆分更改为:
my ($n, $k) = split / /, $line;
您可以在安装了Perl的系统上的命令提示符下键入split
来阅读perldoc -f split
的文档。如果您是Perl的新手,我还建议您花20分钟阅读perldoc perlintro
。虽然它没有明确地讨论split
,但它是一个很好的起点,可以熟悉这种语言。
您的示例代码也将+
运算符视为连接运算符。这是一个容易犯的错误,因为这正是它在许多其他语言中传递字符串时的作用。但是使用Perl,连接运算符是.
(点)。您可以在perldoc perlop
中了解Perl的运算符。
因此,以下几乎相同:
print $n . ';' . $k . "\n";
print "$n;$k\n";