我正在尝试使用chomp()从文件中删除所有换行符.这是代码:
use strict;
use warnings;
open (INPUT, 'input.txt') or die "Couldn't open file, $!";
my @emails = <INPUT>;
close INPUT;
chomp(@emails);
my $test;
foreach(@emails)
{
$test = $test.$_;
}
print $test;
Run Code Online (Sandbox Code Playgroud)
并且input.txt文件的测试内容很简单:
hello.com
hello2.com
hello3.com
hello4.com
Run Code Online (Sandbox Code Playgroud)
我的预期输出是这样的:hello.comhello2.comhello3.comhello4.com
但是,我仍然得到与输入文件相同的内容,请帮忙吗?
谢谢
如果输入文件是在另一个平台(使用不同的EOL序列的平台)上生成的,则chomp可能不会剥离所有换行符.例如,如果您在Windows(使用\r\n)中创建了文本文件并在Mac或Linux上运行该脚本,则\n只会获得该文本,chomp()并且输出仍然"看起来"就像它有换行符一样.
如果你知道输入的EOL序列是什么,你可以$/在之前设置chomp().否则,你可能需要做类似的事情
my @emails = map { s/[\n\r]+$//g; $_ } <INPUT>;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
486 次 |
| 最近记录: |