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…