Struppi: Arrays vergleichen und unterschiede erkennen

Beitrag lesen

Ich schildere mal mein Problem:

  1. ich habe ein Array @array1, welches die Dateien eines
        Verzeichnisses beinhaltet

  2. ich habe ein zweites Array @array2, welches die Dateinamen aus
        meiner MySQL-Datenbank beinhaltet, wobei in diesem Array auch die
        Dateinamen 2 oder mehrfach vorkommen können

  3. jetzt möchte ich gerne die Dateien aus Array1 eliminieren, die
        nicht mehr in Array2 (also in der Datenbank) vorhanden sind, so
        dass ich am Schluss genau weiß welche Dateien auf der Festplatte
        noch gebraucht werden.

Gibt es hierfür einen zuverlässigen Programmiercode?

Sowas läßt sich mit HASHes und grep realsieren.

#!/usr/bin/perl -w

use Data::Dumper;

my @a1 = qw/1 2 3 4 5 6 7 8 9 0/;
my @a2 = qw/1 2 3 4 6 7 8 9 9 9 2 3/;

my %h1;
my %h2;

@h1{@a1} = (undef);
@h2{@a2} = (undef);

grep{ delete $h1{$_} if exists $h1{$_}} keys %h2;
print Dumper %h1;

Struppi.