从perl中的同一行读取两个整数

时间:2017-03-11 10:56:51

标签: perl input

我是Perl的新手。如何读取在Perl中输入的同一行上的两个整数? 例如:

$n=<>;$k=<>;
print $n + ";" + $k

输入是:

2 3

输出如下:

2

请帮忙。

1 个答案:

答案 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";