【发布时间】:2016-09-02 04:55:30
【问题描述】:
我想获取三个文件,每个文件包含 80 行或更多行文本,并打印这三个文件的所有可能组合。
为了清楚起见,我们假设
文件 1 包含
1
2
3
文件2包含
4
5
6
文件3包含
7
8
9
如果我只想打印这些组合,那么我可以使用很多答案。但是,由于文件包含更多我关心的行,因此我需要在 Perl 脚本中手动键入。我正在从每个文件构建一个数组,然后我构建这些数组的数组引用。最后我尝试使用List::Permutor 打印组合。
我遇到的问题是我正在打印内存引用,但我无法弄清楚如何取消引用 List::Permutor 调用中的数组。
Perl 代码
use List::Permutor;
use warnings;
open (FILE, app_txt);
chomp (@app = (<FILE>));
close (FILE);
open (FILE, att1_txt);
chomp (@att1 = (<FILE>));
close (FILE);
open (FILE, att2_txt);
chomp (@att2 = (<FILE>));
close (FILE);
my $permutor = List::Permutor->new( \@app, \@att1, \@att2);
while ( my @permutation = $permutor->next() ) {
print "@permutation\n";
}
【问题讨论】:
-
请为您的 1,2,3 / 4,5,6 / 7,8,9 示例显示您想要的输出,只是为了说明您想要什么
-
“我正在尝试使用 List::Permutor 来打印组合”
List::Permutor用于生成排列。如果你想要 combinations 那么你需要一个不同的模块,也许是Math::Combinatorics -
您从 开始很好“为了清楚起见,我们假设 File1 包含...” 但您再也不会引用该数据,所以没有明确性!请根据简化数据解释您需要什么;那么我们将能够为您提供帮助