我必须制作一个非常小而简单的脚本,根据这些标准用字符串值填充表格:
- 2个字符长
- 第一个字符始终为数字 (0-9)
- 第二个字符是(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;
我只是有兴趣看到这个逻辑的一个非常简洁和精确的版本。