我有一个字符串(例如'24G22'),我试图将其拆分为单独的数字和字符元素(即24、G、22)。为此,我编写了如下所示的正则表达式。
然而,由于一些奇怪的原因,我在我的数组中得到了很多未定义的元素,我期望它们的形式是:
@array = ('24','G', '22')
代替
@array = ('24', undef, undef, 'G', '22', undef)
我从输出中得到
有人可以帮我解释错误的原因以及如何纠正错误并获得我想要的输出吗?
脚本
#!/usr/bin/perl
use strict;
use warnings;
my $string = '24G22';
my @array = ( $string =~ m/([0-9]+)|([ATGCN]+)/g );
print join("\n", @array);
输出
$ ./test_debug.pl
Use of uninitialized value $array[1] in join or string at ./test_debug.pl line 8.
Use of uninitialized value $array[2] in join or string at ./test_debug.pl line 8.
Use of uninitialized value $array[5] in join or string at ./test_debug.pl line 8.
24
G
22