如果存在,如何删除数组元素末尾的逗号?

时间:2015-03-16 10:11:36

标签: perl

我有一个array23,它包含一行文件的字符串。有些字符串有","最后没有白色空间。我想删除字符串末尾的逗号(如果它们存在)。我尝试了以下代码,但无法正常工作

#!/usr/bin/perl
use strict;
use warnings;


open my $abcd , '>','perl_script_3_out_1.txt' or die $!;

foreach( @array23 )
 {
   if ((substr $_,0,-1) =~ ",")
   { 
    s/","//g;
   }
 }
  print $abcd  "$_";                                                                                                                                 

close($abcd);

1 个答案:

答案 0 :(得分:3)

您的程序不会打印任何内容,因为您的打印声明(在循环之外)是指default variable $_,它只存在于您的循环中。

您还在","上执行正则表达式 - 这不是您想要的(每个字符串末尾,)。

您应该始终use strictuse warnings添加到每个脚本的开头以捕捉此类事情

我会用这样的东西:

这只会删除每行末尾发生的,

use strict;
use warnings;

for my $element (@array){
     $element =~ s/,$//g;
     print "$element\n";
}