我正在尝试为Perl设计一个框架,其中sql文件将保存在单独的文件中。 Perl脚本应该读取SQL文件并确定选择了多少列,它应该迭代SQL查询的输出并将它们写为CSV文件。最初我想从简单的查询开始,如:
select col1, col2 from table1;
因此Perl脚本应该迭代SQL输出并创建如下所示的CSV文件:
val1a,val1b
val2a,val2b
val3a,val3b
我面临的问题是我不知道如何动态创建变量数。假设SQL查询中有2列我必须有2个变量来存储列值并将其写入输出文件。如果有3列,则应该能够在不更改脚本的情况下创建3个变量。
如果有任何支持此功能的Perl外部模块,请提供建议。
答案 0 :(得分:0)
您 do not want to create dynamic variables 。相反,您想要使用哈希。
如果您不熟悉此概念,请查看perlref和perlreftut。对于您的SQL互动,您应首先阅读DBI documentation,特别是fetchrow_hashref
和fetchrow_arrayref
。要将数据写入CSV,请使用Text::CSV。
/PRICE:\s+\$([\.\d]+)/g