Perl - 打印出没有小数点的数字

Perl - print out numbers without decimal point

有没有办法让 perl 运行 通过数字文件只打印出没有小数点的数字?

假设我有 60、78.9、109,我希望它打印出 60、109。

这在 Perl 中可行吗?

3.03 是相同的数字,因此如果您有数字的字符串表示形式,则只能检查小数点。如果这就是您所拥有的,您可以使用以下内容:

print "$_\n" for grep { !/\./ } @numbers;
   -or-
print "$_\n" for grep { /^[0-9]+\z/ } @numbers;

另一方面,如果您想过滤掉带有小数部分的数字(三,但三又十分之一不应该),那么您可以检查 int 是否完全改变了数字(因为它删除了小数部分)。

print "$_\n" for grep { $_ == int($_) } @numbers;
perl -ne 'print unless /\./;' < file

是我能想到的用 Perl 完成您描述的最简单的方法。