我有一个脚本,我想将其转换为模块并从 Perl 脚本调用它的函数,就像我现在对 CPAN 模块所做的那样。我的问题是其他人将如何设计模块,我想知道如何进行,因为我以前从未编写过模块。现在编写的脚本执行以下操作:
1) 使用 am in house 模块设置日志记录到数据库 2) 使用 DBI 建立与数据库的连接 3) 使用 Net::SFTP:Foreign 从远程服务器获取文件 4) 处理每个文件中的用户并将数据添加到数据库
该脚本当前采用命令行选项来使用 Getopt::Long 覆盖默认值。
每个文件都是一个管道分隔的用户数据集合,大约 4000 行,如果用户在我们的 LDAP 目录中有一个条目,它会进入数据库。
更重要的是:我应该如何设计我的模块?是否应该将我的脚本当前所做的所有内容都移到模块中,或者是否有一些最好留在脚本中的东西。例如,我正在考虑设计我的模块,所以它会被这样调用:
use MyModule;
$obj = MyModule->new; // possibly pass some arguments
$obj->setupLogging;
$obj->connectToDB;
$obj->fetchFiles;
$obj->processUsers;
这将使脚本保持整洁,但这是模块的最佳主意吗?我正在考虑让脚本检索文件,然后将路径传递给模块进行处理。谢谢