Thread Hilfe für Regex (21 answers)
Opened by lousek at 2011-08-06 17:24

Dubu
 2011-08-08 13:51
#151312 #151312
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
2011-08-08T01:30:38 topeg
Er arbeitet mit Verzeichnispfaden soweit ich es sehe.

Sehe ich auch so. Aus der Beschreibung, welche Zeilen vorkommen können, habe ich aber geschlossen, dass alle Zeilen, die nicht von CPAN:Text::Diff selber kommen (+++, ---, @@), Pfade enthalten (+/, -/, " /"). Deshalb hatte ich keinen Filter darauf eingebaut.

Quote
Und wo wir gerade von alternativen reden, Wenn es wirklich Verzeichnisse sind, ist es besser einen Hash zum vergleichen zu benutzen, denn ich wäre mir nicht sicher, ob die Pfade immer an der selben Stelle stehen. Selbst wenn man die Liste vorher sortiert, kann es sein, dass es falsche Funde gibt.

Ja, daran hatte ich auch gedacht. Dafür gibt es auch schicke CPAN-Module, z.B. CPAN:Set::Scalar:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/usr/bin/perl

use strict;
use warnings;
use Set::Scalar;
use Tie::File;

tie my @x, "Tie::File", $ARGV[0] or die $!;
tie my @y, "Tie::File", $ARGV[1] or die $!;

my $vorher  = Set::Scalar->new(@x);
my $nachher = Set::Scalar->new(@y);

my @db = $nachher->difference($vorher)->members; # hinzugekommen
my @fs = $vorher->difference($nachher)->members; # weggefallen

foreach my $dbitem (@db) {
    print "> ", $dbitem, "\n";
}

foreach my $fsitem (@fs) {
    print "< ", $fsitem, "\n";
}

Die Reihenfolge geht dabei aber auch flöten.

View full thread Hilfe für Regex