それらを個別に名前が付けられた変数に入れることが最良の選択であるかどうかはわかりませんが、顧客は常に正しいです:
use strict;
use warnings;
my $data_read = "T=3420499518 A=914 B=97 C=49 D=436 E=428 F=863 G=34 H=771 I=214 J=493 K=165";
my $data = $data_read;
$data =~ s/[A-KT]=//g;
print "$data\n";
my($T,$A,$B,$C,$D,$E,$F,$G,$H,$I,$J,$K) = split /\s+/, $data;
my $query = "INSERT INTO myhouse (T,A,B,C,D,E,F,G,H,I,J,K) VALUES\n" .
"($T,$A,$B,$C,$D,$E,$F,$G,$H,$I,$J,$K)";
print "$query\n";
print "\nAlternative:\n";
my(@list) = split /\s+/, $data;
print "@list\n";
my $query2 = "INSERT INTO myhouse (T,A,B,C,D,E,F,G,H,I,J,K)\nVALUES(" .
join(",", @list) . ")";
print "$query2\n";
このスニペットを実行すると、次のようになります。
3420499518 914 97 49 436 428 863 34 771 214 493 165
INSERT INTO myhouse (T,A,B,C,D,E,F,G,H,I,J,K) VALUES
(3420499518,914,97,49,436,428,863,34,771,214,493,165)
Alternative:
3420499518 914 97 49 436 428 863 34 771 214 493 165
INSERT INTO myhouse (T,A,B,C,D,E,F,G,H,I,J,K)
VALUES(3420499518,914,97,49,436,428,863,34,771,214,493,165)
スクリプトの後半では、配列を使用して読み込まれた値を保持する、より単純な代替方法を示しています。
明らかに、必要に応じて、値がすべての変数に割り当てられていることや、その他のエラーチェックを確認できます。