Perl 引号仅由数组中的字符串包围



>我需要将数字以外的单引号放在数组中。

我尝试了以下代码,但它不起作用.谁能帮我解决。

$data = join ',', map { /'w+'/ } @$row[0..3];

输入/输出 :

Input :
[1,string test, value test, 5]
Output:
(1,'string test', 'value test', 5)

在元素周围放置'',其中没有一位数字

my $data = join ',', map { /[0-9]/ ? $_ : "'${_}'" } @$row[0..3];

string 10 test没有被引用的地方。

或者,只保留不带引号的纯整数

my $data = join ',', map { /[^0-9]/ ? "'${_}'" : $_ } @$row[0..3];

它也引用了带有数字的字符串,如上例所示。

对于非整数,有标量::util::looks_like_number

use Scalar::Util 'looks_like_number';
my $data = join ',', map { looks_like_number($_) ? $_ : "'${_}'" } @$row[0..3];

当然,什么也适用于第二种情况(整数(。

最新更新