【发布时间】:2014-01-24 04:14:00
【问题描述】:
我正在尝试使用 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;
而input.txt文件的测试内容很简单:
hello.com
hello2.com
hello3.com
hello4.com
我的预期输出是这样的:hello.comhello2.comhello3.comhello4.com
但是,我仍然得到与输入文件相同的内容,请帮忙?
谢谢
【问题讨论】:
-
你在啃一根大绳子。
-
不是 chomp(@emails) 选择列表吗?
-
是的,您正在浏览列表中的每个元素。它按您对我的预期工作。
-
@shensw:是的,它正在对数组的每个元素进行 chomp。
$/变量设置为什么?这就是 chomp 删除的字符。如果是 DOS 格式的文件,每一行都会有 CR 和 LF(CHR(13) 和 CHR(10) 字符...你可以在文件上运行 dos2unix... -
我得到了你所说的期望的输出。如果您使用 Data::Dumper 之类的东西来打印您的数据结构,您可以看到换行符或缺少换行符的指示。