Thomas Müller thomas@mueller-meissen.de (Do 27 Feb 2014 21:01:51 CET):
Hallo an die Scripting Experten unter Euch,
wie kann ich elegant bzw. überhaupt folgende Aufgabe lösen: Gegeben ist eine Datei mit folgendem Inhalt (Auszug)
Elegant ist anders, aber es geht aus so:
#! /usr/bin/perl use 5.014; use warnings; use English qw(-no_match_vars);
$OFS = "\t";
$_ = do { local $RS = undef; <> };
while ( /^component:\s+(?<component>.+?(?=\Q$RS\E)) .*? ^current\sversion:\s+(?<current>\S+) \s[<=>]\s repository\sversion:\s(?<avail>\S+) .*? ^package\sname:\s(?<package>.+?(?=\Q$RS\E)) /ixmgs ) { die "output field separator '$OFS' found in values" if /\Q$OFS\E/ ~~ [values %+]; say @+{qw(component current avail package)};
}
Best regards from Dresden/Germany Viele Grüße aus Dresden Heiko Schlittermann