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

topeg
 2011-08-08 03:30
#151300 #151300
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Er arbeitet mit Verzeichnispfaden soweit ich es sehe.

also:
Code (perl): (dl )
1
2
3
4
5
while ($diff->Next()) {
    next if $diff->Same();
    push @db, grep{ substr($_,0,1) eq '/' }$diff->Items(2);  # hinzugekommen
    push @fs, grep{ substr($_,0,1) eq '/' }$diff->Items(1);  # weggefallen
}


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.
Das wäre diesbezüglich mein Vorschlag.

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
24
25
26
27
28
29
30
31
#!/usr/bin/perl

use strict;
use warnings;
use Tie::File;

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

my %diff;
for(@x)
{ $diff{$_}{x}++ if(substr($_,0,1) eq '/'); }
for(@y)
{ $diff{$_}{y}++ if(substr($_,0,1) eq '/'); }

my (@db, @fs);
for my $path (sort keys(%diff))
{
  my $elm=$diff{$path};
  next if($elm->{x} && $elm->{y})
  push(@db,$path) if($elm->{x});
  push(@fs,$path) if($elm->{y});
}

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

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

View full thread Hilfe für Regex