#!/usr/bin/perl
use strict;
use warnings;
my $sender;
my $receiver;
my @sender;
my @receiver;
open (FILE, "enron.csv");
while (<FILE>) {
($sender, $receiver) = split(/,/, $_);
push @sender, $sender;
push @receiver, $receiver;
}
print @sender;
print @receiver;
我正在阅读的文件是电子邮件地址:对于每一行,有两个地址用逗号分隔。我想将逗号左侧和右侧的地址存储在两个单独的数组中。
我遇到的问题是,当我打印@sender时,所有地址都链接在一起。它们之间没有空格或换行符。
对于@receiver,一切正常。每个地址都有自己的行。 (地址各端的换行符。)
如何修复@sender?
感谢。
答案 0 :(得分:1)
@receiver
中的项目包括输入文件中的换行符。我首先在你的循环中调用chomp
来删除它。然后,打印成为
print map { "$_\n" } @sender;
print map { "$_\n" } @receiver;
或
print "$_\n" for @sender;
print "$_\n" for @receiver;
或
use feature qw( say );
say for @sender;
say for @receiver;
答案 1 :(得分:1)
否则使用列表分隔符
$" = "\n";
print "@sender\n";
print "@receiver\n";
答案 2 :(得分:0)
我想我知道答案。
我必须选择已经包含换行符的每个接收器。