Farid Hajji: Perl - Einführung, Anwendungen, Referenz
2., aktualisierte und erweiterte Auflage
Addison-Wesley Longman, ISBN 3-8273-1535-2
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 |
|