我不知道該把它們放入單獨命名的變量是最好的選擇,但客戶永遠是對的:
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)
腳本的後半部分顯示了一個更簡單的ALT使用數組來保存讀取的值。
顯然,如果您願意,您可以檢查是否將值分配給了所有變量以及其他此類錯誤檢查。
你不應該在查詢插值變量。改爲使用[佔位符](http://search.cpan.org/perldoc?DBI#Placeholders_and_Bind_Values)。 – TLP
如果它們都是數字,那麼沒有太大的危險,但是應該完成驗證它們都是數字。 –