Perl - 打印出没有小数点的数字
Perl - print out numbers without decimal point
有没有办法让 perl 运行 通过数字文件只打印出没有小数点的数字?
假设我有 60、78.9、109,我希望它打印出 60、109。
这在 Perl 中可行吗?
3.0
和 3
是相同的数字,因此如果您有数字的字符串表示形式,则只能检查小数点。如果这就是您所拥有的,您可以使用以下内容:
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 完成您描述的最简单的方法。
有没有办法让 perl 运行 通过数字文件只打印出没有小数点的数字?
假设我有 60、78.9、109,我希望它打印出 60、109。
这在 Perl 中可行吗?
3.0
和 3
是相同的数字,因此如果您有数字的字符串表示形式,则只能检查小数点。如果这就是您所拥有的,您可以使用以下内容:
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 完成您描述的最简单的方法。