>我需要将数字以外的单引号放在数组中。
我尝试了以下代码,但它不起作用.谁能帮我解决。
$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];
当然,什么也适用于第二种情况(整数(。