Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 在替换中使用未初始化的值$u(s//)_Regex_Perl_Substitution - Fatal编程技术网

Regex 在替换中使用未初始化的值$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

我有一个脚本,可以运行和下载一些数据。 在大约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 @$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;