Perl:在目录中搜索包的脚本

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);

一点上下文:我有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);
$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

但请注意,第一部分并不负责加载所讨论的模块。在使用模块之前,您确实应该在其他地方这样做。换句话说,将加载与插入分开