我需要第二双眼睛.每当其中一个条件(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 =~ /\w\s(\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)
每当输出一个中间名时,就会出现换行符.我不知道那是从哪里来的.
使用print和追加换行也会发生同样的事情.