【发布时间】:2015-06-20 05:32:09
【问题描述】:
我试图获取第一个数组中唯一元素的列表。 (又名:第一个数组中的元素不在第二个数组中。)但是我的脚本返回唯一元素的 number,而不是每个元素中的信息。
作为 Perl 的新手,我知道该语言有很多细微差别。我还没有看到我是如何得到一个数字而不是一个元素列表的。我看到的唯一研究是如何获得一些独特的元素,显然,我发现了另一种方法。
感谢任何帮助。下面是代码。
#!/usr/bin/perl
use strict;
use warnings;
use v5.10;
use XML:Simple;
use LWP::Simple;
use List::Compare;
my @upd = system ("perl test.pl | grep '*.x86_64.rpm'");
my @inst = system ("rpm -qa");
@inst = join( '.rpm', @inst);
my $ls = List::Compare->new( {lists=> [\@upd, \@inst]} );
my @list = $ls->get_unique;
@list = $ls->get_Lonly;
say "@list";
【问题讨论】:
-
仅供参考,
get_Lonly是get_unique的别名,因此您应该只调用其中一个,而不是两个。 -
@ThisSuitisBlackNot 哎呀...我想我误读了
get_Lonly的别名引用。已更正! -
你确定
grep调用能达到你想要的效果吗?看起来您正在将 shell 样式模式与正则表达式工具混合使用。在我的系统(以及大多数 POSIXish 系统)上,grep '*.x86_64.rpm'会查找带有文字星号的模式... -
@pilcrow:嗯,我现在正在努力。我不得不将
grep调用更改为grep '.*x86_64.rpm'。