Einführung in den Perl Debugger (PDF) - Thomas Fahle
Einführung in den Perl Debugger (PDF) - Thomas Fahle
Einführung in den Perl Debugger (PDF) - Thomas Fahle
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
<strong>Perl</strong><br />
Erste Schritte - Der <strong>Debugger</strong> als<br />
<strong>Perl</strong>-Shell<br />
Für die ersten Schritte mit dem <strong>Perl</strong>-<strong>Debugger</strong> bietet sich die<br />
Nutzung als <strong>Perl</strong>-Shell an.<br />
perl -d -e 0<br />
... Ausgabe unterdrückt<br />
ma<strong>in</strong>::(-e:1): 0<br />
DB<br />
Der <strong>Debugger</strong> meldet sich mit e<strong>in</strong>em eigenem Prompt<br />
(DB) und wartet auf die E<strong>in</strong>gabe e<strong>in</strong>es Kommandos. Zum<br />
Been<strong>den</strong> des <strong>Debugger</strong>s dient das Kommando q, Hilfe erhält<br />
man über das Kommando h.<br />
Code e<strong>in</strong>geben<br />
Nun kann beliebiger <strong>Perl</strong>-Code e<strong>in</strong>geben wer<strong>den</strong>.<br />
perl -d -e 0<br />
DB pr<strong>in</strong>t “Hallo Foo-Magaz<strong>in</strong>”<br />
Hallo Foo-Magaz<strong>in</strong><br />
DB pr<strong>in</strong>t 6 * 7; pr<strong>in</strong>t “\n”; pr<strong>in</strong>t 6 x 7<br />
42<br />
6666666<br />
Das Zeilenende wird als Anweisungsende aufgefasst, das übliche<br />
Semikolon am Zeilenende kann daher entfallen. Mehrere<br />
Anweisungen <strong>in</strong> e<strong>in</strong>er Zeile müssen allerd<strong>in</strong>gs durch e<strong>in</strong><br />
Semikolon getrennt wer<strong>den</strong>.<br />
Cont<strong>in</strong>uation L<strong>in</strong>es (Fortführungszeilen)<br />
Falls mehr als e<strong>in</strong>e Zeile zur E<strong>in</strong>gabe des Codes benötigt wird,<br />
muss das Zeilenende mit e<strong>in</strong>em \ maskiert wer<strong>den</strong>.<br />
1<br />
2<br />
DB foreach my $number ( 1 .. 2 ) { \<br />
cont: pr<strong>in</strong>t “$number\n” \<br />
cont: }<br />
Variablen<strong>in</strong>halte ausgeben mit p<br />
Das Kommando p erlaubt die e<strong>in</strong>fache Ausgabe der Werte<br />
von Variablen.<br />
DB $scalar = “Text”<br />
DB @array = qw(e<strong>in</strong>s zwei)<br />
DB %hash = ( ‘a’ => ‘1’, ‘b’ => ‘2’)<br />
DB p $scalar<br />
Text<br />
DB p @array<br />
e<strong>in</strong>szwei<br />
DB p %hash<br />
a1b2<br />
Datenstrukturen und Variablen<strong>in</strong>halte mit x anzeigen<br />
Die Ausgabe von p ist für skalare Variablen durchaus brauchbar.<br />
E<strong>in</strong>e übersichtlichere Darstellung lässt sich mit dem<br />
Kommando x erzeugen.<br />
E<strong>in</strong>fache Variablen und Datenstrukturen<br />
Betrachten wir zunächst e<strong>in</strong>mal die grundlegen<strong>den</strong> e<strong>in</strong>fachen<br />
<strong>Perl</strong>-Datenstrukturen.<br />
Das Kommando x evaluiert se<strong>in</strong>e Parameter im Listenkontext.<br />
DB x $scalar<br />
0 ‘Text’<br />
Bei skalaren Variablen wird e<strong>in</strong>e Liste mit e<strong>in</strong>em Element zurückgegeben.<br />
DB x @array<br />
0 ‘e<strong>in</strong>s’<br />
1 ‘zwei’<br />
Bei Array-Variablen wird e<strong>in</strong>e Liste der Elemente mit dem<br />
jeweiligen Index zurückgegeben.<br />
DB x %hash<br />
0 ‘a’<br />
1 1<br />
2 ‘b’<br />
3 2<br />
Auch bei Hashes wird e<strong>in</strong>e Liste mit <strong>den</strong> entsprechen<strong>den</strong> Indizes<br />
ausgegeben.<br />
Wenn man jedoch dem Kommando x e<strong>in</strong>e Referenz auf e<strong>in</strong>e<br />
Variable übergibt, wird die Ausgabe wesentlich <strong>in</strong>formativer.<br />
DB x \$scalar<br />
0 SCALAR(0x8427f00)<br />
-> ‘Text’<br />
DB x \@array<br />
0 ARRAY(0x8427e1c)<br />
0 ‘e<strong>in</strong>s’<br />
1 ‘zwei’<br />
DB x \%hash<br />
0 HASH(0x8427d38)<br />
‘a’ => 1<br />
‘b’ => 2<br />
36