NAME

Quiq::Debug - Hilfe beim Debuggen von Programmen

BASE CLASS

Quiq::Object

METHODS

Datenstrukturen

dump() - Liefere Datenstruktur in lesbarer Form

Synopsis

$str = $this->dump($ref,@opt);

Arguments

$ref

Referenz auf eine Datenstruktur.

@opt

Optionen der Funktion np() des Moduls Data::Printer. Dokumentation siehe dort.

Description

Liefere eine Perl-Datenstruktur beliebiger Tiefe in lesbarer Form als Zeichenkette, so dass sie zu Debugzwecken ausgegeben werden kann. Die Methode nutzt das Modul Data::Printer und davon die Funktion np(). Die Optionen @opt werden an diese Funktion weiter geleitet.

Example

Quiq::Debug->dump($obj,colored=>1);

Module

modulePaths() - Pfade der geladenen Perl Moduldateien

Synopsis

$str = $this->modulePaths;

Description

Liefere eine Aufstellung der Pfade der aktuell geladenen Perl Moduldateien. Ein Modulpfad pro Zeile, alphabetisch sortiert.

Example

Die aktuell geladenen Moduldateien auf STDOUT ausgeben:

print Quiq::Debug->modulePaths;
==>
/home/fs/lib/perl5/Quiq/Debug.pm
/home/fs/lib/perl5/Quiq/Object.pm
/home/fs/lib/perl5/Perl/Quiq/Stacktrace.pm
/usr/share/perl/5.20/base.pm
/usr/share/perl/5.20/strict.pm
/usr/share/perl/5.20/vars.pm
/usr/share/perl/5.20/warnings.pm
/usr/share/perl/5.20/warnings/register.pm

Subroutines

findSubroutine() - Suche Subroutine

Synopsis

@arr | $str = $this->findSubroutine($pattern);

Description

Suche die Subroutines, die den Pattern $pattern erfüllen, in den Moduldateien (.pm) entlang der Pfade in @INC. Im Array-Kontext liefere die Liste der Modulnamen, im Skalarkontext die Liste als Zeichenkette (ein Modulpfad pro Zeile).

Example

ANPASSEN

Die aktuell geladenen Moduldateien auf STDOUT ausgeben:

print Quiq::Debug->findSubroutine;
==>
/home/fs/lib/perl5/Quiq/Debug.pm
/home/fs/lib/perl5/Quiq/Object.pm
/home/fs/lib/perl5/Perl/Quiq/Stacktrace.pm
/usr/share/perl/5.20/base.pm
/usr/share/perl/5.20/strict.pm
/usr/share/perl/5.20/vars.pm
/usr/share/perl/5.20/warnings.pm
/usr/share/perl/5.20/warnings/register.pm

Textvergleich

showDiff() - Zeige Differenz zwischen zwei Dateien

Synopsis

$str = $this->showDiff($file1,$file2,@opt);

Options

-verbose => $bool (Default: 0)

Liefere in der ersten Zeile das Diff-Kommando.

Description

Zeige die Differenz zwischen zwei Dateien. Die Anzeige wird auf die Breite des Terminals eingestellt.

Example

perl -MQuiq::Debug -E 'print Quiq::Debug->showDiff($file1,$file2)' | less

showRdiff() - Zeige Differenz einer Datei in zwei Verzeichnissen, lokal und remote

Synopsis

$str = $this->showRdiff($lRoot,$rRoot,$file,%options);

Arguments

$lRoot

Lokales Wurzelverzeichnis

$rRoot

Remote Wurzelverzeichnis (per ssh erreichbar)

Options

-commandOnly => $bool (Default: 0)

Zeige nur das Kommando, führe es jedoch nicht aus.

Returns

(String) Differenz, wie sie von diff(1) dargestellt wird.

Description

Das Kommando ermittelt die Differenz einer Datei in zwei Verzeichnissen mit der gleichen Struktur, wobei das eine Verzeichnis lokal und das andere remote ist, und liefert diese Differenz zurück.

Example

Differenz einer Datei in ZUGFeRD-Installation in Entwicklungs- und Produktivumgebung:

$ perl -MQuiq::Debug -E 'print Quiq::Debug->showRdiff($ENV{"ZUGFERD_HOME"},"z3po\@z3po:/opt/Zugferd","etc/niederlassung.csv")'

VERSION

1.236

AUTHOR

Frank Seitz, http://fseitz.de/

COPYRIGHT

Copyright (C) 2026 Frank Seitz

LICENSE

This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.