我需要比较两个数组并获取它们之间的差异。
背景:
第一个数组将列出文件夹中的文件。
第二个数组将读取文件的内容并存储在数组中。
第一个数组的输出将是:
a
b
c
d
e
第二个数组的输出将是:
a
b
c
e
我如何比较这两个数组并找出它们之间的不同之处?我想要的最终输出是:
d
以下是代码:
#!/usr/bin/perl
use strict;
use warnings;
my $list = "experiment.sv";
my $path = "../../../folder1/";
my $filelist;
open ( OUTFILE, ">output.txt" );
main ();
close OUTFILE;
sub main {
my @array1;
opendir ( DIR, $path ) || die "Error in opening dir $path\n";
while ( $filelist = readdir (DIR) ) {
next if ( $filelist =~ s/\.//g); #/
push @array1, $filelist;
}
closedir(DIR);
my @array2;
open( my $fh, "<", "$path/$list") or die "Failed to open file: $!\n";
while(<$fh>) {
push @array2, $_;
}
close $fh;
my @result;
foreach my $array2 (@array2) {
foreach my $array1 (@array1) {
if ($array1 !~ /$array2/ ) {
push @result, "$array1\n";
}
}
}
print OUTFILE "",@result;
}