2017-08-03 9 views
1

number以外の単一引用符を配列に配置する必要があります。配列内の文字列だけで囲まれたPerl引用符

次のコードを試しましたが、機能しませんでした。誰かがそれを整理するのを助けることができますか?

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

入力/出力:

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

答えて

4

string 10 testが引用されませんそれら

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

で一桁台を持っていない要素の周りに''を配置します。上記の例のように、同様にそれらの数字を含む文字列を引用引用符で囲まれていないだけで、純粋な整数

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

を残す

または、。非整数の場合

Scalar::Util::looks_like_number

use Scalar::Util 'looks_like_number'; 

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

もちろん何も第二ケース(整数)の作品があります。

+1

また、テスト用に['Scalar :: Util :: looks_like_number'](https://metacpan.org/pod/Scalar::Util#looks_like_number)を使用することもできます。 – melpomene

+0

@melpomeneはい、あなたは正しいです、それらの "他の"(整数よりも)数字を並べ替える必要があります。私はしません。 – zdim

関連する問題