【提问帖】perl出现字符叠加
perl吧
全部回复
仅看楼主
level 1
open INFILE, "<$ARGV[0]";
my @inputlist;
while (<INFILE>) {
chomp();
my $line = $_;
print "$line\n";
push @inputlist, "$line";
}
我使用如上代码构造数组后,其中的元素在运算过程中就会发生叠加。
2022年07月08日 16点07分 1
level 1
例如元素“AAAAAAAA"."string"
会得到”stringAA"
如果数组是“AAAAA”,“BBB”,"C"
打印会得到” CBBA“
2022年07月08日 16点07分 2
如果打印数组间,没有空格,就会得到”CBBAA"这种
2022年07月08日 16点07分
打印数组的时候,如果要空格的话 比如my @nums = (1,2,3); print("@nums\n") 就可以了,需要双引号包裹起来
2023年04月01日 11点04分
level 1
我发现这种情况时,每次运算的结果会让后一个字符串直接从头覆盖前一个字符串,我这次的写法和运行环境和之前的都没有区别,但是出现这样的bug,很奇怪,不知道这是什么原因
2022年07月08日 16点07分 3
level 1
请求吧内大神指教!!![泪]
2022年07月08日 16点07分 4
level 4
你输出的代码是什么样子的,
这种后面的字符把前面覆盖的玄学我也遇到过,直接重新做了输入文件解决的,推测是不是原字符后面后肉眼不可见的字符。。。
2022年07月11日 06点07分 5
输入文件我确认过应该就是普通的字母和换行符(从Excel里复制出来的会有影响吗),输出就是那种叠加
2022年07月11日 06点07分
@⛄醋酸菌⛄ 我至今也不知道原因,当初我遇到了也是怎么看都看不出问题。要么你输出的时候每个元素之间多打几个制表符
2022年07月11日 06点07分
@啊依哟啊依哟 我直接把列表内置到脚本里面了,干脆每次都从脚本改[阴险]
2022年07月11日 10点07分
@⛄醋酸菌⛄ sub string_only {
2022年07月14日 09点07分
level 4
sub string_only {
my $get = shift @_;
my $new;
foreach my $w (split //,$get)
{
if($w =~ /[A-Za-z0-9:_\/\.&\-+ ,]/)
{
$new .= $w;
}
}
return $new;
}
我前几天遇到这种情况了,写了一个这种子程序处理好的。应该就是这些字符前后有别的字符
2022年07月14日 09点07分 6
好的,感谢你,我去试试
2022年07月14日 09点07分
@啊依哟啊依哟 的确成功了,谢谢老哥
2022年07月14日 09点07分
@⛄醋酸菌⛄ 也真是巧了,时隔几年了遇到这种问题,要不是跟你交流了我昨天遇上了估计还只能多打制表符
2022年07月14日 10点07分
level 4
今天又遇到这种问题,dos2unix解决了
2023年02月28日 05点02分 7
1