perl – 使用’say’输出的奇怪输出
发布时间:2020-12-16 06:06:08 所属栏目:大数据 来源:网络整理
导读:我需要第二双眼睛.每当其中一个条件(if或elsif)为真时,我就会得到一个额外的换行符.我不希望这样. use strict;use warnings;use autodie;use feature 'say';my $filename = 'rr.txt';open my $fh,'',$filename;while ($fh) { my ($last_name,$first_name,$co
|
我需要第二双眼睛.每当其中一个条件(if或elsif)为真时,我就会得到一个额外的换行符.我不希望这样.
use strict;
use warnings;
use autodie;
use feature 'say';
my $filename = 'rr.txt';
open my $fh,'<',$filename;
while (<$fh>) {
my ($last_name,$first_name,$country) = split /[,|]/,$_;
my $middle_name;
$country =~ s/^(//;
$country =~ s/)$//;
say "Last Name: $last_name";
say "First Name: $first_name";
say "Country: $country";
if ($first_name =~ /ws(w+)/) {
$middle_name = $1;
say "Middle Name: $1";
} elsif ($first_name =~ /w-(w+)/) {
$middle_name = $1;
say "Middle Name: $1";
}
}
该文件如下所示: Reid,Matt|(AUS) Samper-Montana,Jordi|(ESP) Krajonovic,Filip|(SRB) Jones,Greg Luke|(AUS) Burquier,Gregoire|(FRA) Mandol,David|(ARG) Daniel Llosa,Miguel Horpo|(DOM) 每当输出一个中间名时,就会出现换行符.我不知道那是从哪里来的. 解决方法
say在输出结尾添加换行符.您读取的国家/地区代码仍然附加换行符,因为您没有选择输入行.因此,您获得双倍行距输出(来自国家之后的换行符,而不是中间名称之前的换行符).
修复:添加chomp;在分割线之前. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
