www.farid-hajji.net banner

Farid Hajji

Perl: Einführung, Anwendungen, Referenz (2/e) [Support-Site]

Farid Hajji: Perl - Einführung, Anwendungen, Referenz
2., aktualisierte und erweiterte Auflage
Addison-Wesley Longman, ISBN 3-8273-1535-2

Beispielprogramm

stringify-destringify.pl
#!/usr/local/bin/perl -w
# stringify-destringify.pl -- Persistenz von Datenstrukturen durch
#                       manuelle Stringifizierung.

# Wir wollen die folgende Struktur stringifizieren:
$f = [ { I => 1, II => 2, III => 3},
       qw(this is a test),
       { one => 1, two => 2, three => 3},
       [ qw(hello brave new world) ]
     ];

$str = stringify($f);
print $str, "\n";

destringify($str, "output");        # Erzeugt $output
use Data::Dumper;
use vars qw($output);
print Dumper( $output );

sub stringify {
    my $f = shift;

    if (!ref($f)) { return "\'$f\'"; }        # Keine Zeiger: Einfach!
    if (ref($f) eq 'ARRAY') {
    return "[" . join(',', map { stringify($_) } @{ $f }) . "]\n";
    }
    if (ref($f) eq 'HASH') {
    return "{" . join(',', map {
                 "@{[stringify($_)]} => @{[stringify($f->{$_})]}"
                                  }
                      keys %{ $f }) . "}\n";
    }
    # Nicht beruecksichtigt: REF, SCALAR, CODE, GLOB, LVALUE
    #                  mit bless() erzeugte Objekten,
    #                  Quotes in Werten.
    return $f;
}

sub destringify {
    my $str     = shift;
    my $outname = shift;
    eval "\$$outname = $str";
}
   

[Prev] [Up] [Relevant Chapter] [Next]

[Alte Quelle]


Last modified: $Date: 2006/05/18 12:56:06 $
FH. Search :: Sitemap :: Disclaimer :: Copyright :: Privacy
FreeBSD Logo