Regex 在替换中使用未初始化的值$u(s//)
我有一个脚本,可以运行和下载一些数据。 在大约60次拉动时,一切正常,然后我突然发现错误: 在替换中使用未初始化的值$u(s//)Regex 在替换中使用未初始化的值$u(s//),regex,perl,substitution,Regex,Perl,Substitution,我有一个脚本,可以运行和下载一些数据。 在大约60次拉动时,一切正常,然后我突然发现错误: 在替换中使用未初始化的值$u(s//) while(我的$row=$ia\u申请人\u查询->fetchrow\u arrayref){ s/\t//g表示@$row;#func(“$line\n”,“putline”); } 然后,对剩余的800次拉取重复该错误。 知道哪里出了问题吗?这意味着@$row中的一个值是undef,如果列为NULL,就会发生这种情况 这可以通过更换 s/\t/ /g for
while(我的$row=$ia\u申请人\u查询->fetchrow\u arrayref){
s/\t//g表示@$row;#func(“$line\n”,“putline”);
}
然后,对剩余的800次拉取重复该错误。
知道哪里出了问题吗?这意味着
@$row
中的一个值是undef
,如果列为NULL
,就会发生这种情况
这可以通过更换
s/\t/ /g for @$row;
my $line = join "\t", map { defined($_) ? $_ : '.' } @$row;
与
或
那么当时的@$行是什么呢?有些列可能包含NULL。
s/\t/ /g for @$row;
my $line = join "\t", map { defined($_) ? $_ : '.' } @$row;
my $line = join "\t", map { defined($_) ? s/\t/ /gr : '.' } @$row; # 5.14+
sub tabs_to_spaces { ( my $s = shift ) =~ s/\t/ /g; $s }
my $line = join "\t", map { defined($_) ? tabs_to_spaces($_) : '.' } @$row;