WxPerlTafel

Dies ist eine Kurzübersicht zu wesentlichen Detailinformationen der WxProgrammierung. Eine mehr ausführlich Anleitung bietet das WxPerl Tutorial. Es gibt auch eine englische Version in der WxWiki

WidgetKlassen

Alle Klassen und Funktionen werden mit einem Wx:: vor den hier erwähnten Namen geschrieben. Die Klassen sind oft core, aber manchmal auch in seperaten Modulen ausgelagert, die mit use/require zu laden sind, aber "use Wx qw[:allclasses];" läd alle installierten Wx::* Module auf einmal. Und Camelcase (Namensteile werden zusammen geschrieben und beginnen mit Großbuchstaben) ist Konvention für Die Namen der Klassen, Methoden und Funktionen.

Fenster

   Frame             Haupfenster eines Programms, kann Leisten mit Menü, Status und Werkzeugen verwalten
   MiniFrame         Fenster mit minimalen Rahmen und keinen weitere Fähigkeiten
   MDIParentFrame    Oberfenster für MDI
   MDIChildFrame     Kinderfenster, daß nur innerhalb des MDIParentFrame dargestellt wird
   Dialog            Fenster mit Panel, daß beim Schließen Programmprozess nicht beendet
   Wizard            Dialoge mit mehreren Panel und Navigation dafür
   TopLevelWindow    Basisklasse aller Fenster (Icon, Titel, Größe, Anzeigemodus, Form)
   PopupWindow       randlose Flächen die aktuelles Fenster überlagern (für zb. Kontextmenüs)
   Window            Basisklasse aller sichtbaren Objekte (Widget), nur in früheren Versionen als Fenster benutzbar

Dialoge

keine Klasse sondern eine Funktionen die Dialoge sofort aufrufen und nur einen Wert zurückgeben:
   MessageBox( $msg, $caption, $flags, $parent, $x, $y);
   AboutBox
   ShowTip
   DirSelector
   FileSelector
   GetColourFromUser
   GetFontFromUser
   GetMultipleChoices
   GetNumberFromUser
   GetPasswordFromUser
   GetTextFromUser
   GetSingleChoice

Klassen die modale Dialoge erzeugen, Dialoge die nach Erzeugung gezeigt werden können und nach Benutzung ausgewertet werden können:

   MessageDialog 
   SingleChoiceDialog 
   MultiChoiceDialog 
   TextEntryDialog 
   PasswordEntryDialog 
   FileDialog 
   DirDialog 
   FontDialog 
   PrintDialog 
   ColourDialog

Flächen

   Panel              Grundfläche um darauf andere Widgets zu positionieren
   ScrolledWindow     Panel mit Scrollbalken das (virtuell) größer als sichtbarer Ausschnitt ist
   VScrolledWindow    sich anpassendes ScrolledWindow
   CollapsiblePane    Label mit Fläche die sich zusammenklappen lässt wie Knoten eines Baums (TreeCtrl)
   SplitterWindow     zweigeteilte Fläche mit beweglichem Balken (horizontal oder vertikal)

Dekoration

   StaticLine         horizontale oder vertikale Linie/Rechteck mit variabler Breite, meist als Trennlinie
   StaticBox          Rahmen mit Überschrift um eine Gruppe von Widget (graphischen Elementen)
   StaticText         ein Text-Etikett
   Gauge              Balken der Prozentangabe/Fortschrittsangabe anzeigen kann
   StaticBitmap       ein Bild 
   AnimationCtrl      Animation / Film der ohne Nutzerkontrolle ständig abläuft

Auswahl

   Button             einfacher Knopf mit Beschriftung
   BitmapButton       Knopf mit Bild/Icon auf der Oberfläche
   SpinButton         2 Knöpfe mit Pfeilen für links/recht oder oben/unten Entscheidungen
   CheckBox           beschriftetes Kästchen an das ein Häkchen gesetzt werdne kann
   RadioButton        beschriftetes Kästchen das nur eine Auswahl je Gruppe zuläßt
   ListBox            Liste von Labels die mehrfache Auswahl erlaubt
   Slider             Regler mit Textbox die aktuell gewählten Wert anzeigt
   CalendarCtrl       wähl ein Datum
   FileCtrl           wähl eine Datei, Inhalt des Wx::FileDialog
   FilePickerCtrl     Knopf der Wx::FileDialog aufruft
   DirPickerCtrl      Knopf der Wx::DirDialog aufruft
   FontPickerCtrl     Knopf der Wx::FontDialog aufruft
   ColourPickerCtrl   Knopf der Wx::ColourDialog aufruft

Panelauswahl

Diese etwas komplexeren Widget, die von Wx::BookCtrl abgeleitet sind, lassen immer zwischen Panel auswählen, von denen eines samt Inhalt immer sichtbar ist.

   Notebook           benutzt eine Reiterleiste
   Listbook           benutzt eine Liste aka Wx::ListCtrl
   Choicebook         benutzt Wx::Choice 
   Treebook           benutzt eine Baumstruktur aka Wx::TreeCtrl 
   Toolbook           benutzt eine Werkzeugleiste aka Wx::ToolBar 

Eingabe

   TextCtrl            einfaches Textfeld über eine oder mehr Zeilen
   RichTextCtrl        Textfeld mit mehr Formatierungsmöglichkeiten
   StyledTextCtrl      aka Wx::STC aka Scintilla, Textfeld mit syntaxfärbung und sehr viel mehr
   SpinCtrl            Textfeld mit SpinButton (2 Pfeilknöpfe)
   Grid                Tabelle a la Excel
   HtmlWindow          Renderer für einfaches HTML in das auch Widgets eingebettet werden können
   MediaCtrl           Videospieler, den der Nutzer steuern kann (im Gegensatz zu AnimationCtrl)

Sizer

Sind keine Widget, also nicht sichtbar, aber organisieren die Anordnung der Widget, manipulieren also die Parameter für Position und Größe der Widgets.

   BoxSizer             eindimensionaler, linearer Sizer
   StaticBoxSizer       BoxSizer mit Rahmen und Label
   StdDialogButtonSizer für eine Zeile mit Standart Button im Standartlayout des OS
   GridSizer            einfache Tabelle mit gleichgroßen Zellen
   FlexGridSizer        Tabelle mit Zeilen und Spalten variabler Größe
   GridBagSizer         FlexGridSizer wo Widgets Zellengrenzen überschreiten können (wie col- und rowspan in html)

Methoden

Namen

Parameter

... haben eine feste Reihenfolge (solnag man nicht wxPerl::Constructors benutzt), die im groben folgendem Schema folgt.

$obj->Methodename(Elterwidget, WidgetID, Input, Pos, Größe, Style, Zusätze ...., Name);

Konstanten

Alle Konstanten werden aus dem Modul "Wx::Wx_Exp.pm" geladen (zum nachschaun), aber aus dem Namensraum "Wx" importiert (use Wx qw( konstante, :gruppe );), Faule benutzen "use Wx qw(:everything);". Wenn sie importiert werden, können sie wie folgt geschrieben werden, ansonst: "&Wx::wxKONSTANTE".

Abstände

Diese Konstanten bestimmen in welche Richtungen dieses Widget zusätzlichen Rand zu seiner Umgebung haben soll.
   wxALL = wxTOP | wxBOTTOM | wxLEFT | wxRIGHT
     aka   wxNORTH,wxSOUTH,   wxWEST,  wxEAST

Ausrichtung

   wxALIGN_LEFT wxALIGN_RIGHT wxALIGN_TOP wxALIGN_BOTTOM
   wxALIGN_CENTER_VERTICAL aka wxALIGN_CENTRE_VERTICAL
   wxALIGN_CENTER_HORIZONTAL aka wxALIGN_CENTRE_HORIZONTAL 
   wxALIGN_CENTER aka wxALIGN_CENTRE = ...ENTER_HORIZONTAL | ...ENTER_VERTICAL
Default : wxALIGN_LEFT | wxALIGN_TOP

Größe

   wxEXPAND aka wxGROW nimmt allen verfügbaren Platz ein.
   wxSHAPED            wie wxEXPAND, unter Wahrung der zugewiesenen Höhe/Breite-Verhältnisses.
   wxFIXED_MINSIZE     Größe wird unveränderlich nach anfänglicher Berechnung 

Haupfenster

   wxCAPTION | wxMINIMIZE_BOX | wxMAXIMIZE_BOX | wxRESIZE_BORDER

Allgemein Widgets

   wxID_ANY aka -1  eine noch freie ID
   wxID_NONE
   vordefinierte, reservierte ID = wxID_LOWEST .. wxID_HIGHEST

MsgBoxen

   wxYES_NO  wxYES wxNO wxCANCEL  wxOK
   wxICON_EXCLAMATION wxICON_HAND  wxICON_ERROR wxICON_QUESTION  wxICON_INFORMATION 

Farben

   wxBLACK wxWHITE wxRED wxBLUE wxGREEN wxCYAN wxLIGHT_GREY

Tasten

   WXK_SHIFT WXK_ALT WXK_CONTROL
   WXK_BACK WXK_TAB WXK_RETURN WXK_ESCAPE WXK_SPACE WXK_SCROLL WXK_NUMLOCK
   '#' => 47 tilde => 92,
   WXK_DELETE WXK_INSERT WXK_PAGEUP, WXK_PAGEDOWN, WXK_HOME, WXK_END,
   WXK_LEFT WXK_UP WXK_RIGHT WXK_DOWN, WXK_F1 .. WXK_F12
   WXK_NUMPAD_SPACE WXK_NUMPAD_TAB WXK_NUMPAD_ENTER WXK_NUMPAD_F1

Menüitem

   wxID_ABOUT wxID_ADD wxID_APPLY wxID_BOLD wxID_CANCEL wxID_CLEAR wxID_CLOSE
   wxID_COPY wxID_CUT wxID_DELETE wxID_EDIT wxID_FIND wxID_FILE wxID_REPLACE
   wxID_BACKWARD wxID_DOWN wxID_FORWARD wxID_UP wxID_HELP wxID_HOME wxID_INDENT
   wxID_INDEX wxID_ITALIC wxID_JUSTIFY_CENTER  wxID_JUSTIFY_FILL 
   wxID_JUSTIFY_LEFT wxID_JUSTIFY_RIGHT 
   wxID_NEW wxID_NO wxID_OK wxID_OPEN wxID_PASTE wxID_PREFERENCES wxID_PRINT
   wxID_PREVIEW wxID_PROPERTIES wxID_EXIT wxID_REDO wxID_REFRESH wxID_REMOVE
   wxID_REVERT_TO_SAVED wxID_SAVE wxID_SAVEAS wxID_SELECTALL wxID_STOP 
   wxID_UNDELETE wxID_UNDERLINE wxID_UNDO wxID_UNINDENT 
   wxID_YES wxID_ZOOM_100 wxID_ZOOM_FIT wxID_ZOOM_IN  wxID_ZOOM_OUT

Sprachen

   WxLANGUAGE_DEFAULT wxLANGUAGE_UNKNOWN wxLANGUAGE_USER_DEFINED 
   wxLANGUAGE_ABKHAZIAN wxLANGUAGE_AFAR wxLANGUAGE_AFRIKAANS wxLANGUAGE_ALBANIAN wxLANGUAGE_AMHARIC wxLANGUAGE_ARABIC wxLANGUAGE_ARABIC_ALGERIA 
   wxLANGUAGE_ARABIC_BAHRAIN wxLANGUAGE_ARABIC_EGYPT wxLANGUAGE_ARABIC_IRAQ wxLANGUAGE_ARABIC_JORDAN wxLANGUAGE_ARABIC_KUWAIT wxLANGUAGE_ARABIC_LEBANON
   wxLANGUAGE_ARABIC_LIBYA wxLANGUAGE_ARABIC_MOROCCO wxLANGUAGE_ARABIC_OMAN wxLANGUAGE_ARABIC_QATAR wxLANGUAGE_ARABIC_SAUDI_ARABIA wxLANGUAGE_ARABIC_SUDAN 
   wxLANGUAGE_ARABIC_SYRIA wxLANGUAGE_ARABIC_TUNISIA wxLANGUAGE_ARABIC_UAE wxLANGUAGE_ARABIC_YEMEN wxLANGUAGE_ARMENIAN wxLANGUAGE_ASSAMESE wxLANGUAGE_AYMARA 
   wxLANGUAGE_AZERI wxLANGUAGE_AZERI_CYRILLIC wxLANGUAGE_AZERI_LATIN
   wxLANGUAGE_BASHKIR wxLANGUAGE_BASQUE wxLANGUAGE_BELARUSIAN wxLANGUAGE_BENGALI wxLANGUAGE_BHUTANI wxLANGUAGE_BIHARI wxLANGUAGE_BISLAMA
   wxLANGUAGE_BRETON wxLANGUAGE_BULGARIAN wxLANGUAGE_BURMESE         wxLANGUAGE_CAMBODIAN wxLANGUAGE_CATALAN 
   wxLANGUAGE_CHINESE wxLANGUAGE_CHINESE_SIMPLIFIED wxLANGUAGE_CHINESE_TRADITIONAL wxLANGUAGE_CHINESE_HONGKONG wxLANGUAGE_CHINESE_MACAU wxLANGUAGE_CHINESE_SINGAPORE wxLANGUAGE_CHINESE_TAIWAN 
   wxLANGUAGE_CORSICAN wxLANGUAGE_CROATIAN wxLANGUAGE_CZECH          wxLANGUAGE_DANISH wxLANGUAGE_DUTCH wxLANGUAGE_DUTCH_BELGIAN
   wxLANGUAGE_ENGLISH wxLANGUAGE_ENGLISH_UK wxLANGUAGE_ENGLISH_US wxLANGUAGE_ENGLISH_AUSTRALIA wxLANGUAGE_ENGLISH_BELIZE wxLANGUAGE_ENGLISH_BOTSWANA wxLANGUAGE_ENGLISH_CANADA 
   wxLANGUAGE_ENGLISH_CARIBBEAN wxLANGUAGE_ENGLISH_DENMARK wxLANGUAGE_ENGLISH_EIRE wxLANGUAGE_ENGLISH_JAMAICA wxLANGUAGE_ENGLISH_NEW_ZEALAND 
   wxLANGUAGE_ENGLISH_PHILIPPINES wxLANGUAGE_ENGLISH_SOUTH_AFRICA wxLANGUAGE_ENGLISH_TRINIDAD wxLANGUAGE_ENGLISH_ZIMBABWE wxLANGUAGE_ESPERANTO wxLANGUAGE_ESTONIAN 
   wxLANGUAGE_FAEROESE wxLANGUAGE_FARSI wxLANGUAGE_FIJI wxLANGUAGE_FINNISH wxLANGUAGE_FRENCH wxLANGUAGE_FRENCH_BELGIAN wxLANGUAGE_FRENCH_CANADIAN wxLANGUAGE_FRENCH_LUXEMBOURG 
   wxLANGUAGE_FRENCH_MONACO wxLANGUAGE_FRENCH_SWISS wxLANGUAGE_FRISIAN
   wxLANGUAGE_GALICIAN wxLANGUAGE_GEORGIAN wxLANGUAGE_GERMAN wxLANGUAGE_GERMAN_AUSTRIAN wxLANGUAGE_GERMAN_BELGIUM wxLANGUAGE_GERMAN_LIECHTENSTEIN wxLANGUAGE_GERMAN_LUXEMBOURG wxLANGUAGE_GERMAN_SWISS 
   wxLANGUAGE_GREEK wxLANGUAGE_GREENLANDIC wxLANGUAGE_GUARANI wxLANGUAGE_GUJARATI 
   wxLANGUAGE_HAUSA wxLANGUAGE_HEBREW wxLANGUAGE_HINDI wxLANGUAGE_HUNGARIAN
   wxLANGUAGE_ICELANDIC wxLANGUAGE_INDONESIAN wxLANGUAGE_INTERLINGUA wxLANGUAGE_INTERLINGUE wxLANGUAGE_INUKTITUT wxLANGUAGE_INUPIAK wxLANGUAGE_IRISH wxLANGUAGE_ITALIAN wxLANGUAGE_ITALIAN_SWISS 
   wxLANGUAGE_JAPANESE wxLANGUAGE_JAVANESE 
   wxLANGUAGE_KANNADA wxLANGUAGE_KASHMIRI wxLANGUAGE_KASHMIRI_INDIA wxLANGUAGE_KAZAKH wxLANGUAGE_KERNEWEK wxLANGUAGE_KINYARWANDA wxLANGUAGE_KIRGHIZ wxLANGUAGE_KIRUNDI
   wxLANGUAGE_KONKANI wxLANGUAGE_KOREAN wxLANGUAGE_KURDISH 
   wxLANGUAGE_LAOTHIAN wxLANGUAGE_LATIN wxLANGUAGE_LATVIAN wxLANGUAGE_LINGALA wxLANGUAGE_LITHUANIAN 
   wxLANGUAGE_MACEDONIAN wxLANGUAGE_MALAGASY wxLANGUAGE_MALAY wxLANGUAGE_MALAYALAM wxLANGUAGE_MALAY_BRUNEI_DARUSSALAM wxLANGUAGE_MALAY_MALAYSIA 
   wxLANGUAGE_MALTESE wxLANGUAGE_MANIPURI wxLANGUAGE_MAORI wxLANGUAGE_MARATHI wxLANGUAGE_MOLDAVIAN wxLANGUAGE_MONGOLIAN 
   wxLANGUAGE_NAURU wxLANGUAGE_NEPALI wxLANGUAGE_NEPALI_INDIA wxLANGUAGE_NORWEGIAN_BOKMAL wxLANGUAGE_NORWEGIAN_NYNORSK 
   wxLANGUAGE_OCCITAN wxLANGUAGE_ORIYA wxLANGUAGE_OROMO 
   wxLANGUAGE_PASHTO wxLANGUAGE_POLISH wxLANGUAGE_PORTUGUESE wxLANGUAGE_PORTUGUESE_BRAZILIAN wxLANGUAGE_PUNJABI         wxLANGUAGE_QUECHUA 
   wxLANGUAGE_RHAETO_ROMANCE wxLANGUAGE_ROMANIAN wxLANGUAGE_RUSSIAN wxLANGUAGE_RUSSIAN_UKRAINE 
   wxLANGUAGE_SAMOAN wxLANGUAGE_SANGHO wxLANGUAGE_SANSKRIT wxLANGUAGE_SCOTS_GAELIC
   wxLANGUAGE_SERBIAN wxLANGUAGE_SERBIAN_CYRILLIC wxLANGUAGE_SERBIAN_LATIN wxLANGUAGE_SERBO_CROATIAN wxLANGUAGE_SESOTHO wxLANGUAGE_SETSWANA
   wxLANGUAGE_SHONA wxLANGUAGE_SINDHI wxLANGUAGE_SINHALESE wxLANGUAGE_SISWATI wxLANGUAGE_SLOVAK wxLANGUAGE_SLOVENIAN wxLANGUAGE_SOMALI 
   wxLANGUAGE_SPANISH wxLANGUAGE_SPANISH_ARGENTINA wxLANGUAGE_SPANISH_BOLIVIA wxLANGUAGE_SPANISH_CHILE wxLANGUAGE_SPANISH_COLOMBIA wxLANGUAGE_SPANISH_COSTA_RICA 
   wxLANGUAGE_SPANISH_DOMINICAN_REPUBLIC wxLANGUAGE_SPANISH_ECUADOR wxLANGUAGE_SPANISH_EL_SALVADOR wxLANGUAGE_SPANISH_GUATEMALA wxLANGUAGE_SPANISH_HONDURAS wxLANGUAGE_SPANISH_MEXICAN 
   wxLANGUAGE_SPANISH_MODERN wxLANGUAGE_SPANISH_NICARAGUA wxLANGUAGE_SPANISH_PANAMA wxLANGUAGE_SPANISH_PARAGUAY wxLANGUAGE_SPANISH_PERU wxLANGUAGE_SPANISH_PUERTO_RICO
   wxLANGUAGE_SPANISH_URUGUAY wxLANGUAGE_SPANISH_US wxLANGUAGE_SPANISH_VENEZUELA wxLANGUAGE_SUNDANESE wxLANGUAGE_SWAHILI wxLANGUAGE_SWEDISH wxLANGUAGE_SWEDISH_FINLAND 
   wxLANGUAGE_TAGALOG wxLANGUAGE_TAJIK wxLANGUAGE_TAMIL wxLANGUAGE_TATAR wxLANGUAGE_TELUGU wxLANGUAGE_THAI wxLANGUAGE_TIBETAN wxLANGUAGE_TIGRINYA 
   wxLANGUAGE_TONGA wxLANGUAGE_TSONGA wxLANGUAGE_TURKISH wxLANGUAGE_TURKMEN wxLANGUAGE_TWI 
   wxLANGUAGE_UIGHUR wxLANGUAGE_UKRAINIAN wxLANGUAGE_URDU wxLANGUAGE_URDU_INDIA wxLANGUAGE_URDU_PAKISTAN wxLANGUAGE_UZBEK wxLANGUAGE_UZBEK_CYRILLIC wxLANGUAGE_UZBEK_LATIN 
   wxLANGUAGE_VIETNAMESE wxLANGUAGE_VOLAPUK wxLANGUAGE_WELSH wxLANGUAGE_WOLOF 
   wxLANGUAGE_XHOSA wxLANGUAGE_YIDDISH wxLANGUAGE_YORUBA wxLANGUAGE_ZHUANG wxLANGUAGE_ZULU 

Ereignisse

werden Wx::Event::eventname benutzt oder als Konstanten von Wx::Event importiert, kommen aber ebenfalls aus "Wx::Wx_Exp.pm". Bequeme Menschen benutzen "use Wx::Event qw(:everything);". Manche Events brauchen noch als zusätzlichen Parameter die ID des Events an zweiter Stelle.

Alle Widgets

   EVT_SIZE( $widget, \&$callback );    # wenn sich Größe des Widet ändert
   EVT_SIZING                           # das Selbe ?
   EVT_SET_FOCUS                        # widget bekommt Fokus
   EVT_KILL_FOCUS                       # widget verliertFokus
   EVT_IDLE                             # wenn $app und kinder nichts tun
   EVT_DESTROY                          # zu spät für ein Veto

Fenster

haben alle Ereignisse von Widgets und noch einige mehr:

   EVT_MOVE                             # Fenster wird bewegt - 100/sec
   EVT_MOVE_START                       # 
   EVT_MOVE_END                         # 
   EVT_CLOSE                            # $event->Veto verhindert Schließen

Tastatur

   EVT_KEY_DOWN( $widget, \&$callback );
   EVT_KEY_UP
   EVT_CHAR

Maus

   EVT_LEFT_UP( $widget, \&$callback );
   EVT_LEFT_DOWN EVT_MIDDLE_UP EVT_MIDDLE_DOWN EVT_RIGHT_UP EVT_RIGHT_DOWN
   EVT_MOUSEWHEEL                    # wenn mausrad sich dreht
   EVT_MOTION                        # wenn Cursor sich überm Widget bewegt
   EVT_ENTER_WINDOW                  # Cursor erreicht Widget
   EVT_LEAVE_WINDOW                  # Cursor verläßt Widget
   EVT_MOUSE_EVENTS                  # fange alle Mausereignisse ab

Stoppuhr

   my $timer = Wx::Timer->new( $Widget, $TimerID );
   $timer->Start( $millisekunden, $einmal_auslösen  );
   $timer->Stop;

   EVT_TIMER( $Widget, $TimerID , \&$callback );

Menü

Der erste Event wird bei Auswahl des Menüitem ausgelöst, der zweite bereits beim anwählen.

   EVT_MENU( $widget, $itemID , \&$callback );
   EVT_MENU_HIGHLIGHT

Contribs

mächtige Erweiterungen des Kerns

AUI

Advanced userinterface für peppigeres aussehen, einfacheres DND und marhalling der GUI

XRC

XML Resource Compiler, benutzt Wx::XML zum lesen und erstell. zur laufzeit komplette GUI oder auch beliebige Teile.

   Wx::InitAllImageHandlers();
   my $xr = Wx::XmlResource->new();
   $xr->InitAllHandlers();
   $xr->Load('file.xrc');  # nur lesen

   my $frame = $xr->LoadFrame(undef, 'ConFrame');
   my $knopfID = Wx::XmlResource::GetXRCID('knopf1')
   my $knopf = $frame->FindWindow($buttonID);

   LoadBitmap('ElementID');
   LoadDialog($parent, 'ElementID');
   LoadFrame($parent, 'ElementID');
   LoadIcon('ElementID');
   LoadMenu('ElementID');
   LoadMenuBar($parent, 'ElementID');
   LoadPanel($parent, 'ElementID');
   LoadToolBar($parent, 'ElementID');


Dieses Turorial steht unter der BY-SA-3.0 Unported Lizenz.


-- HerbertBreunung - 12 Oct 2009
Topic revision: 2013-01-09, HerbertBreunung
 
Bitte die NutzungsBedingungen beachten.
Bei Vorschlägen, Anfragen oder Problemen mit dem PerlCommunityWiki bitten wir um Rückmeldung.