Question

J'ai 2 tableaux (@system,@reserve).Chacun contient une liste de numéros et j'aimerais comparer et d'épissure de sortir (peut-être?) les nombres dans @reserve qui correspondent à des nombres dans @system.

J'ai essayé quelques-uns des réponses à trouver et coller des questions, mais ils ne semblent pas être au travail.À L'Aide De Perl 5.12.4.

Les numéros dans @reserve sera toujours 11000..136000 et les nombres dans le système sera toujours dans la @system gamme mais peut varier.Le code que j'ai mis l'accent sur ressemble:

my @system = query();
my @reserve = 11000..136000;

foreach my $num (@system) {
my $index = 0;
$index++ until $reserve[$index] eq $num;
splice (@reserve,$index,1);
}

query() demande juste le système PBX () pour une liste de nombres et les pousse à @system.

Toute aide est appréciée.

Merci,

Marty

Était-ce utile?

La solution

Vous n'avez pas à travailler avec splice lorsque vous utilisez un hashslice à la place:

my @system = query();

my %reserve ;
@reserve{(11000..136000)} = undef ;

delete @reserve{@system} ;
my @list_of_reserve = sort { $a <=> $b } keys %reserve ;

Autres conseils

Comment à ce sujet:

my @system = query();
my @reserve = 11000..136000;
my %tmp = map{$_ => 1}@system;
@reserve = grep{!exists $tmp{$_}}@reserve;
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top