gpt4 book ai didi

regex - 在替换中使用未初始化的值 $_ (s///)

转载 作者:行者123 更新时间:2023-12-02 06:50:03 25 4
gpt4 key购买 nike

我有一个脚本可以运行并下载一些数据。大约 60 次拉动时一切正常,然后突然出现错误:

在替换中使用未初始化的值 $_ (s///)

while ( my $row = $ia_applicant_query->fetchrow_arrayref ) {

s/\t/ /g for @$row; # <------- THIS IS WHAT THE ERROR POINTS TO
my $line = join "\t", map { defined $_ ? $_ : '.' } @$row;
$mydb->func( "$line\n", "putline" );
}

然后,对于剩余的 800 次拉动,错误只会重复出现。知道可能出了什么问题吗?

最佳答案

这意味着 @$row 中的值之一是 undef,如果该列为 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;

关于regex - 在替换中使用未初始化的值 $_ (s///),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47444658/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com