Ich nutze unter PHP recht oft die Funktion print_r für’s Debugging. Diese Funktion gibt eine beliebige Variable strukturiert aus. Sinnvoll ist das natürlich am meisten bei Arrays und Objekten.
Für Perl gibt es kein print_r, dafür aber Data::Dumper (CPAN).
Ein kleines Beispiel:
use Data::Dumper;
my @arr = qw(foo bar foobar);
my %hash = (
foo => 'bar',
bar => @arr
);
print Dumper(@arr, \%hash);
Das ergibt:
$VAR1 = [
'foo',
'bar',
'foobar'
];
$VAR2 = {
'bar' => $VAR1,
'foo' => 'bar'
};
Steht Data::Dumper mal nicht zur Verfügung geht es zur Not auch ohne.
Ein einfaches Array kann man sich so ansehen:
print "@array";
Mit dem Array aus den Beispiel von oben ergibt das:
foo bar foobar
Bei Hashs funktioniert das aber nicht. Hier geht es aber so:
my %hash = (
A => 1,
B => 2,
C => 3,
);
{
local $, = ' ';
print %hash, $/;
}
Die Ausgabe sieht so aus:
A 1 C 3 B 2
Zugegeben, Data::Dumper ist da optisch besser, aber in der Not frisst der Teufel Fliegen…