Farid Hajji: Perl - Einführung, Anwendungen, Referenz
2., aktualisierte und erweiterte Auflage
Addison-Wesley Longman, ISBN 3-8273-1535-2
cmplx-print1.pl
#!/usr/local/bin/perl -w
# cmplx-print1.pl -- Komplexe Datenstrukturen anzeigen: Selbstgemacht
use strict 'refs';
$listp = [ { one => 1, two => 2, three => 3 },
{ eins => 1, zwei => 2, drei => 3 },
{ uno => 'I', due => 'II', tre => 'III' },
"some other string",
"some other value",
4711,
sub { exit 0; },
\*STDIN,
\substr("immutable", 0, 5),
"That's all, folks!"
];
print showit($listp), "\n";
# Zeigt einen skalaren Wert an:
sub showit {
my $what = shift;
my $ptrtype = ref $what;
return $what if not $ptrtype; # Kein Zeiger...
if ($ptrtype eq 'SCALAR') {
return "SCALAR(" . showit($$what) . ")";
} elsif ($ptrtype eq 'ARRAY') {
return "[ " . join("\n", map { showit($_) } @{$what}) . " ]";
} elsif ($ptrtype eq 'HASH') {
return "{ " . join(", ",
map { showit($_) . " => " . $what->{$_} }
sort keys %{$what}) . " }";
} elsif ($ptrtype eq 'CODE' or
$ptrtype eq 'GLOB' or
$ptrtype eq 'LVALUE') {
return $ptrtype . "<$what>";
} elsif ($ptrtype eq 'REF') {
return "REF<" . showit($$what) . ">";
} else {
# Ist ein anderer Typ (Objekt einer Klasse)
return $ptrtype . "(" . showit($$what) . ")";
}
}
[Prev] [Up] [Relevant Chapter] [Next]
[Alte Quelle]
| Last modified: $Date: 2006/05/18 12:55:54 $ FH. Search :: Sitemap :: Disclaimer :: Copyright :: Privacy |
|