如何在Perl中执行类似SQL的连接?

sfa*_*tor 8 perl filemerge file-processing

我必须通过组合两个不同的文件来处理一些数据.它们都有两列可以形成一个主键,我可以用它来并排匹配它们.问题中的文件很大(大约5GB,有2000万行)所以我需要一个高效的代码.我如何在Perl中执行此操作?

我举个例子:

如果文件A包含列

id, name, lastname, dob, school
Run Code Online (Sandbox Code Playgroud)

文件B包含列

address, id, postcode, dob, email
Run Code Online (Sandbox Code Playgroud)

我需要通过匹配两个文件中的iddob来连接这两个文件,以获得具有列的输出文件:

 id, name, lastname, dob, school, address, postcode, email
Run Code Online (Sandbox Code Playgroud)

Øyv*_*aar 8

想想我只会创建一个新的mysql/sqlite /无论数据库并插入行.应该是~20行perl.

当然,这需要轻松访问数据库..

猜猜你也可以通过有趣的字段对文件进行排序,然后对于file1中的每一行,找到并打印file2中的匹配行.

  • ...并且您可以直接从CPAN(DBD :: SQLite)构建SQLite的副本.顺便说一句,在向SQLite中插入大量数据时,要使用大型事务. (2认同)