Thomas Müller <[email protected]> (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
-- 
SCHLITTERMANN.de ---------------------------- internet & unix support -
Heiko Schlittermann, Dipl.-Ing. (TU) - {fon,fax}: +49.351.802998{1,3} -
gnupg encrypted messages are welcome --------------- key ID: 7CBF764A -
gnupg fingerprint: 9288 F17D BBF9 9625 5ABC  285C 26A9 687E 7CBF 764A -
(gnupg fingerprint: 3061 CFBF 2D88 F034 E8D2  7E92 EE4E AC98 48D0 359B)-

Attachment: signature.asc
Description: Digital signature

_______________________________________________
Lug-dd maillist  -  [email protected]
https://ssl.schlittermann.de/mailman/listinfo/lug-dd

Antwort per Email an