Perl:在目录中搜索包的脚本
一点上下文:我有csv文件,其中包含使用Text::csvxs移动到数据库的数据。我大约有12张桌子。我正在使用Model/Data.pm DBI包装器模块,它是“Model/Data/Table1.pm”模块的父模块,每个模块代表一个表。如果我想在表1中写入一些内容,我需要编写一个script.pl,它执行以下操作:Perl:在目录中搜索包的脚本,perl,Perl,一点上下文:我有csv文件,其中包含使用Text::csvxs移动到数据库的数据。我大约有12张桌子。我正在使用Model/Data.pm DBI包装器模块,它是“Model/Data/Table1.pm”模块的父模块,每个模块代表一个表。如果我想在表1中写入一些内容,我需要编写一个script.pl,它执行以下操作: my $table1_ds = App::Model::Data::Table1->new(); $table1_ds->insert(\@insert_data);
my $table1_ds = App::Model::Data::Table1->new();
$table1_ds->insert(\@insert_data);
$table1_ds->commit;
for each $table_name(@table_names){
my $table_name_ds = App::Model::Data::$table_name->new();
$table_name_ds->insert(\@insert_data);
$table_name_ds->commit;
}
我不想为每个表都写这个。此外,也许有一天会出现新的表格
我希望Perl在“Model/Data/”和“get”中搜索包,或者将每个包存储在数据结构中,这样我就可以使用如下代码:
my $table1_ds = App::Model::Data::Table1->new();
$table1_ds->insert(\@insert_data);
$table1_ds->commit;
for each $table_name(@table_names){
my $table_name_ds = App::Model::Data::$table_name->new();
$table_name_ds->insert(\@insert_data);
$table_name_ds->commit;
}
如何制作一个perl脚本,在目录中搜索包并将名称存储在数据结构中(在示例中为@table_names)?假设您使用的是
strict
(您也应该使用warnings
)
但请注意,第一部分并不负责加载所讨论的模块。在使用模块之前,您确实应该在其他地方这样做。换句话说,将加载与插入分开