Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]12673[/thread]

Perl-Modul für Struktur-Erklärung von Skripten



<< |< 1 2 >| >> 20 Einträge, 2 Seiten
Gast Gast
 2008-10-25 22:50
#115748 #115748
Hallo

Ich suche ein Perl-Modul dass es mir ermöglicht zu einem gegebenen Skript die Struktur mir auszugeben. Und zwar möglichst graphisch

Also z.b. Welche Sub welche Sub aufruft und welches Package von wo aufgerufen wird.


ziel davon soll es sein, die Struktur eines Packages oder größeren Gebildes einem aussenstehenden zu erklären ohne dass dieser sich den Source-Code ansehen muss.


Viele Grüße

PAtrick Müller
#Kein Kommentar
 2008-10-26 01:58
#115749 #115749
User since
2007-06-09
575 Artikel
HausmeisterIn
[default_avatar]
ich kenn nur CPAN:Module::ScanDeps. das kann aber nur modul-abhängigkeiten dokumentieren
Gerade weil wir alle in einem Boot sitzen, sollten wir froh sein, dass nicht alle auf unserer Seite sind
lichtkind
 2008-10-26 02:03
#115750 #115750
User since
2004-03-22
5697 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
vielleicht suchst du CPAN:PPI
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
Ronnie
 2008-10-26 12:53
#115753 #115753
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
Ansonsten wäre es eine Möglichkeit einfach das Skript zu durchlaufen, nach sub Definitionen zu schauen, ein zweites Mal zu durchlaufen und zu schauen, wo diese aufgerufen werden und eine Digraph-Datei für GraphViz zu erzeugen.
Gast Gast
 2008-10-26 17:19
#115761 #115761
Vielleicht habe ich mich in dem einleitenden Beitrag nicht ganz genau ausdrücken können.

Also ich kenne aus C++ z.B. etwas in der Art wie make doc, was mir ein doxygen Dokument erstellt, woraus man wunderschön komplexere Datentypen, aber auch Abhänigkeiten erkennt..

Jetzt suche ich halt etwas ähnliches für Perl...
Ronnie
 2008-10-26 17:41
#115762 #115762
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
Gast+2008-10-26 16:19:34--
Jetzt suche ich halt etwas ähnliches für Perl...

Das wäre dann integrierte Dokumentation mit POD: http://perldoc.perl.org/perlpod.html
LanX-
 2008-10-26 18:07
#115763 #115763
User since
2008-07-15
1000 Artikel
BenutzerIn

user image
vorweg, einen Visualisierer für Perl-Distributionen hab ich noch nicht gesehen, aber ich kann mir vorstellen dass man das auf etags (oder vtags) aufbocken kann.

das sind von emacs/vi erstellte parsings die aus Scripten Sprungmarken zu Funktionsdefs rausfiltern. Da ist die für alle gängigen Sprachen gibt, wirds auch bestimmt einen Viewer geben der dann einen Dependencygraphen aufbauen kann. IDEs nutzen solche Dateien.


Alternativ wäre hier noch perltidy aufzulisten, der HTML-Output kann optional auch eine Liste der Funktionen in einem extra-Frame ausgeben, darauf kann man aufbauen.

Mal ganz im Allgemeinen: Perl ist viel dynamischer als C, da einen Parser zu bauen der 100%ig alle Aufrufe per Laufzeit erkennt ist IMHO nicht trivial.
pq
 2008-10-26 18:44
#115765 #115765
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
LanX-+2008-10-26 17:07:30--
Mal ganz im Allgemeinen: Perl ist viel dynamischer als C, da einen Parser zu bauen der 100%ig alle Aufrufe per Laufzeit erkennt ist IMHO nicht trivial.

ich würde sagen unmöglich. zum einen "only perl can parse Perl", und wenn man davon mal
absieht, gibt es immer noch das problem:
Code (perl): (dl )
1
2
my $method = "foo"; # oder aus einer externen quelle
$object->$foo;

desweiteren kann ich auch dynamisch subroutinen erstellen.
das sind alles vorteile und gleichzeitig nachteile.
mir ist es jedoch lieber, eine klasse definiert zu haben mit Class::Accessor, das mir
die ganzen getter und setter erspart, als ein ressourcenmonster wie eclipse, das mir getter
und setter erzeugt und dann anzeigen kann. warum den editor als hilfsmittel nehmen und
die accessors bei jeder änderung neu erzeugen lassen, wenn ich es stattdessen mit
perl-bordmitteln machen kann und code einspare?
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
LanX-
 2008-10-26 20:14
#115768 #115768
User since
2008-07-15
1000 Artikel
BenutzerIn

user image
Natürlich zu 100% unmöglich, aber wieviele Progger reizen die Möglichkeiten auch zu 100% aus?

der Knackpunkt ist einfach, was mit
Gast+2008-10-25 20:50:54--
Und zwar möglichst graphisch

wirklich gewollt ist.

Zu emacs noch ECB dazuinstalliert und ich kann in Baumansicht dynamisch durch alle perlfiles in einem Directorybaum navigieren. Welche IDE bietet für welche Sprache darüber hinaus noch etwas, was hier Sinn machen würde???

Wie sollte ein aussagekräftiger statischer Abhängigkeitsgraph überhaupt automatisch gezeichnet werden??? Wie gesagt wenn es dazu schon was gibt dann frisst es bestimmt auch etags als Eingabeformat. (EDIT: http://dirk.rave.org/cdeps.html natüröich mit graphviz)

Welche Packages eingebunden werden ist im Übr. viel aussagekräftiger und übersichtlicher als welche Fkt wo aufgerufen wird.

Kurz und knapp: Die Fragestellung ist recht diffus!

@pq: Eclipse glänzt also damit getter und setter statisch zu generieren? Super ...
pq
 2008-10-26 20:34
#115769 #115769
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
LanX-+2008-10-26 19:14:11--
@pq: Eclipse glänzt also damit getter und setter statisch zu generieren? Super ...

zumindest war das eins der features, die uns in einer firmeninternen schulung mal gezeigt wurden...
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
<< |< 1 2 >| >> 20 Einträge, 2 Seiten



View all threads created 2008-10-25 22:50.