【发布时间】:2023-04-11 11:01:01
【问题描述】:
我编写了一个 perl 脚本,可以打开两个包含列表的文件。我想在第一个列表中查找不在第二个列表中的项目。该脚本使用两个 foreach 循环。外部循环遍历第一个列表的每一行,提取必要的项目信息。内部循环遍历第二个列表,提取项目信息,然后将该信息与第一个列表中的项目进行比较。
因此,想法是,对于第一个列表中的每个项目,脚本将遍历第二个列表中的所有项目,寻找匹配项。问题是内部 foreach 循环只循环一次。在嵌套的 while 循环中遍历 MySQL 表时,我在 PHP 中遇到了同样的问题。解决方案是使用 mysql_data_seek 为外循环的每次迭代重置 mysql 数据的索引。如何在 perl 中使用文件句柄执行此操作?
【问题讨论】:
-
你能发布一些代码来解释你现在在做什么吗?
-
如果你展示你的代码,人们将能够指出哪里出了问题。没有它,人们只能推测,而您只是在浪费他们(和您)的时间。
-
没有代码我无法回答,但很可能您正在从外部循环重新使用内部循环中的某些内容,例如文件句柄或循环计数器。
-
比较你的两个循环,看看你是否在内循环而不是外循环中犯了一个小错误。除此之外,您需要显示代码,否则我们不知道您想要什么。
-
您不需要编写自己的代码来检查列表子集 - 有 CPAN 模块,更不用说内置的
~~运算符了。