我有一个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);
答案 0 :(得分:3)
您的程序不会打印任何内容,因为您的打印声明(在循环之外)是指default variable $_
,它只存在于您的循环中。
您还在","
上执行正则表达式 - 这不是您想要的(每个字符串末尾,
)。
您应该始终将use strict
和use warnings
添加到每个脚本的开头以捕捉此类事情
我会用这样的东西:
这只会删除每行末尾发生的,
。
use strict;
use warnings;
for my $element (@array){
$element =~ s/,$//g;
print "$element\n";
}