【提问帖】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分
hwy801207
打印数组的时候,如果要空格的话 比如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