Perl追加前缀循环数组

Nat*_* II 1 arrays perl append

我正在努力在循环数组时附加文件扩展名.例如,预期输出为ABC001.csv,但输出看起来更像.csv01.

任何有关如何做到这一点的帮助非常感谢.如有必要,我可以提供更多代码.

foreach my $name (@source){
print "${name}.csv\n";
} 
Run Code Online (Sandbox Code Playgroud)

Eri*_*ikR 6

我确定你的文件名末尾有回车.也就是说,$name被设置为"ABC001\r \n".当您打印"$ name.csv \n"时,您将获得:

ABC001<-
.csv
Run Code Online (Sandbox Code Playgroud)

.csv01在你的屏幕上看起来像.

快速解决方法是删除回车符,如下所示:

for my $name (@source) {
  $name =~ s/\r//g;
  print "$name.csv\n";
}
Run Code Online (Sandbox Code Playgroud)

但更好的解决方案是在数据进入您的应用程序时删除回车.