NAME
Quiq::Tree - Operatonen auf Perl-Baumstrukturen
BASE CLASS
DESCRIPTION
Diese Klasse stellt Methoden zur Verfügung, um auf beliebigen baumartigen Perl-Datenstrukturen operieren zu können. D.h. der Baum wird als Datenstruktur aus Hashes und Arrays angesehen - ohne dass die Knoten einer bestimmten Klasse angehören müssen. Die Klasse besitzt daher ausschließlich Klassenmethoden. Der erste Parameter jeder Klassenmethode ist eine Referenz auf den Wurzelknoten des Baums.
METHODS
Klassenmethoden
leafPaths() - Liste der Pfade
Synopsis
@paths|$pathA = $class->leafPaths($ref);
Arguments
Returns
(Array) Liste der Pfade. Im Skalarkontext wird eine Referenz auf die Liste geliefert.
Description
Liefere die Liste der Pfade zu den Blattknoten des Baums $ref. Diese Liste ist nützlich, um die Zugriffspfade zu den Blattknoten zu ermitteln.
removeEmptyNodes() - Entferne alle leeren Knoten
Synopsis
$class->removeEmptyNodes($ref);
Arguments
Description
Durchlaufe die Datenstruktur $ref rekursiv und entferne alle leeren Knoten.
Ein Blattknoten ist leer, wenn wenn sein Wert
undef
ist.Ein Hashknoten ist leer, wenn er kein Element enthält.
Ein Arrayknoten ist leer, wenn er kein Element enthält.
removeEmptyNodesRecursive() - Entferne leere Knoten
Synopsis
$class->removeEmptyNodesRecursive($ref);
Arguments
Description
Interne Methode, die den Baum rekursiv durchläuft und die leeren Knoten entfernt. Es sind i.d.R. mehrere Durchläufe nötig, um alle leeren Knoten zu entfernen, siehe $class->removeEmptyNodes().
setLeafValue() - Setze den Wert von Blattknoten
Synopsis
$class->setLeafValue($ref,$sub);
Arguments
- $ref
-
Referenz auf hierarchische Datenstruktur
- $sub
-
Referenz auf Subroutine, die für jeden Blattknoten gerufen wird.
Description
Durchlaufe die Datenstruktur $ref rekursiv, rufe auf allen Blattknoten die Subroutine $sub mit dem aktuellen Wert des Knotens auf und setze auf dem Knoten den gelieferten Wert.
Ein Blattknoten des Baums ist dadurch gekennzeichner, dass er einen "einfachen" skalaren Wert besitzt, also auf keine Substruktur (Hash- oder Array-Referenz) verweist.
VERSION
1.224
AUTHOR
Frank Seitz, http://fseitz.de/
COPYRIGHT
Copyright (C) 2025 Frank Seitz
LICENSE
This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.