以下の基準に従ってテーブルに文字列値を入力する、非常に小さくて単純なスクリプトを作成する必要がありました。
- 2 文字の長さ
- 最初の文字は常に数字 (0-9)
- 2 番目の文字は (0-9) ですが、「X」も含まれます
- データベースのテーブルに値を挿入する必要がある
プログラムは次のように実行されます。
insert into table (code) values ('01');
insert into table (code) values ('02');
insert into table (code) values ('03');
insert into table (code) values ('04');
insert into table (code) values ('05');
insert into table (code) values ('06');
insert into table (code) values ('07');
insert into table (code) values ('08');
insert into table (code) values ('09');
insert into table (code) values ('0X');
合計 110 個の値が挿入されるまで、以下同様です。
私のコード(最小化して効率化するためではなく、それを達成するためだけに)は次のとおりです。
use strict;
use DBI;
my ($db1,$sql,$sth,%dbattr);
%dbattr=(ChopBlanks => 1,RaiseError => 0);
$db1=DBI->connect('DBI:mysql:','','',\%dbattr);
my @code;
for(0..9)
{
$code[0]=$_;
for(0..9)
{
$code[1]=$_;
insert(@code);
}
insert($code[0],"X");
}
sub insert
{
my $skip=0;
foreach(@_)
{
if($skip==0)
{
$sql="insert into table (code) values ('".$_[0].$_[1]."');";
$sth=$db1->prepare($sql);
$sth->execute();
$skip++;
}
else
{
$skip--;
}
}
}
exit;
このロジックの本当に簡潔で正確なバージョンを見ることに興味があります。