wie definiere ich das als code genau, dass der filename der key ist und die dazugehörigen werte befinden sich in einem array?
Indem Du die Dateien zeilenweise vergleichst, das allseits beliebte Tie::File sollte helfen:
use Tie::File;
my $file1 = 'hier.txt';
my $file2 = 'dort.txt';
tie my @lines1, 'Tie::File', $file1 or die "Couldn't tie $file1: $!";
tie my @lines2, 'Tie::File', $file2 or die "Couldn't tie $file2: $!";
my %diff;
# wir setzen voraus, dass beide
# Dateien gleich viele Zeilen haben
for(0..$#lines1) {
if($lines1[$_] ne $lines2[$_]) {
$diff[$_] = { $file1 => $lines1[$_],
$file2 => $lines2[$_]
};
}
}
untie @lines1;
untie @lines2;
Der Hash ist dann so aufgebaut:
{
ZeileNr_x => {
'hier.txt' => 'Inhalt der Zeile',
'dort.txt' => 'Anderer Inhalt'
},
ZeileNr_y => {
'hier.txt' => 'Inhalt der Zeile',
'dort.txt' => 'Anderer Inhalt'
},
# usw. usf.
}
Jede andere Struktur wäre auch möglich, wie Du das umsetzt, lies bitte in perldsc nach.
Siechfred
--
Obacht, hinter jedem noch so kleinen Busch könnte ein Indianer sitzen!
Obacht, hinter jedem noch so kleinen Busch könnte ein Indianer sitzen!