Perl Installeren

Waarschuwing: Perl heeft standaard niet een mooie grafische interface. Het is een script-taal, en 'eet' dus tekst files met Perl scripts. Als je Perl hebt geïnstalleerd en opstart door op Perl.exe te klikken, gebeurt er ook niet zo veel (je krijgt een zwart tekstscherm te zien, Control-Z typen om er uit te komen). Wil je een grafische interface, of een command line prompt, kijk dan op mijn Perl Interpreter pagina, of verderop naar de IDE. Een andere mogelijkheid is om op perl files (met de .pl extensie) te dubbelklikken, dan worden deze uitgevoerd.

Perl Installatie: het hoofdprogramma

Ik gebruik dus Perl... Hoe kom je er aan, en hoe installeer je het. Dit is voor Windows eenvoudig, dank zij het uitstekende werk van ActiveState, welke niet alleen een kant en klare installer voor Perl hebben, maar ook vele kant-en-klare modules met uitbreidingen, die via een eenvoudige interface ('PPM', Perl Package Manager) zijn te downloaden en te installeren. Zie de box hiernaast voor andere Perl versies.

Ondertussen is ook al Perl 5.10 uit!! Aan te raden voor nieuwe gebruikers.

En ook aan Perl 6 wordt gewerkt, maar dit wordt echt een volledige revisie van de taal.

Ik heb lang gebruik gemaakt van Perl 5.6 (build 638), omdat voor Perl 5.8 nog niet alle modules verkrijgbaar waren (met name Gd was lang niet verkrijgbaar, nu wel via de PPM Packages from the University of Winnipeg, zie verderop voor details). Ondertussen ben ik geüpgraded naar versie ActivePerl-5.8.8.822, dat ging vrij pijnloos (wel eerst versie 5.6 deïnstalleren!). Download de installer (een windows .msi file), draai de installer, klaar. Om te testen of het werkt kan je vanuit een DOS/CMD box eens typen 'perl -v', dit zou wat informatie over Perl (zoals het versienummer) weer moeten geven.

Perl Environment Variabelen

Om Perl ook eigengemaakte modules en uitbreidingen te kunnen laten vinden zet ik een environment variabele PERL5LIB naar de map waar ik mijn eigen modules heb staan. Ook zet ik een start-up optie: gebruik de module G, deze zorgt er voor dat vanaf de command-prompt de argumenten goed worden doorgegeven (de Windows command prompt CMD heeft zo z'n eigen methodes om met spaties, quotes en komma's om te gaan), op te halen op Jenda's pages. Via Computer --> Eigenschappen:

    SET PERL5LIB=C:/Perl/Progs/Modules
  SET PERL5OPT=-MG

Perl Uitbreidingen

Wat zit standaard al bij ActiveState Perl

Start de Perl Package Manager (in een DOS box) via het PPM commando. 'help' geeft de lijst mogelijke commando's; 'query *' geeft de voorgeïnstalleerde pakketten in 5.8:

Module Versie Beschrijving
ActivePerl-Config 1.0 Override the ActivePerl configuration
ActivePerl-DocTools 1.1 Maintain HTML documentation
ActiveState-Utils 1.23 ActiveState's utility modules
Archive-Tar 1.26.1 Manipulates TAR archives
Archive-Zip 1.16 Provide an interface to ZIP archive files.
Compress-Zlib 1.41 Interface to zlib compression library
Data-Dump 1.6 Stringified Perl data structures
Digest-HMAC 1.1 Keyed-Hashing for Message Authentication
Digest-MD2 2.3 Perl interface to the MD2 algorithm
Digest-MD4 1.5.0.1 Perl interface to the MD4 algorithm
Digest-SHA1 2.11 Perl interface to the SHA-1 algorithm
File-CounterFile 1.4 Persistent counters
Font-AFM 1.19 Interface to Adobe Font Metrics files
HTML-Parser 3.50 Parsing of HTML documents
HTML-Tagset 3.10 Data tables useful in parsing HTML
HTML-Tree 3.19.1 Build and scan parse-trees of HTML
IO-String 1.8 Emulate file interface for in-core strings
IO-Zlib 1.4 IO:: style interface to Compress::Zlib
libwin32 0.26.0.~ A collection of extensions that aims to p~
libwww-perl 5.805 Web API for Perl
MD5 2.3 Deprecated. Use Digest::MD5 instead.
MIME-Base64-Scripts 1.0 Scripts to encode/decode base64 and quote~
SOAP-Lite 0.55.0.~ Interface to the Simple Object Access Pro~
SOAP-Lite 0.55.0.~ Interface to the Simple Object Access Pro~
Term-ReadLine-Perl 1.2.3.2 Readline implementation in Perl
TermReadKey 2.30 Change terminal modes and perform non-blo~
Text-Autoformat 1.13 Automatic text wrapping and reformatting
Text-Reform 1.11 Manual text wrapping and reformatting
Tk 804.27.~ Tk - a Graphical User Interface Toolkit
Unicode-String 2.9 Unicode abstraction based on UTF-16
URI 1.35 Uniform Resource Identifier references (R~
Win32-AuthenticateUser 0.2 Win32 user authentication package
XML-Parser 2.34.0.~ Parsing of XML documents
XML-Simple 2.14 Easy API to maintain XML (esp config file~

Al een heel nuttige collectie!

Extra modules

Daarnaast kan je via PPM extra pakketten installeren, ik heb bijvoorbeeld de grafische library Gd geïnstalleerd vanaf de Bribes.org site (je hebt de volgende files nodig: GD-2.35-PPM58.tar.gz of nieuwer en GD.ppd) om bijvoorbeeld de knoppen voor de navigatiebalk op mijn web-page te maken. Gaat eenvoudig: geef in PPM het commando 'install .\Gd.ppd' in de directory waar de files staan, en PPM installeert het, inclusief documentatie. Als je nu weer 'query' vraagt, is de volgende regel er bij gekomen:

  • GD [2.32 ] Interface to Gd Graphics Library

Het is ook mogelijk om PPM te leren op welke sites pakketten op te halen zijn; daarna is het commando 'ppm install <pakketnaam>' voldoende, en haalt PPM zelf het pakket op van internet. Of, specificeer het pad direct in de prompt, voor Gd (bedankt Joshua, voor het testen):

C:\>ppm install http://theoryx5.uwinnipeg.ca/ppms/GD.ppd

Andere nuttige sites zijn bijvoorbeeld Jenda's pages. Ook handig vind ik Win32::GuiTest, om andere applicaties te besturen (scripting, kan toetsaanslagen naar andere apps sturen en zo). Versie 1.50.1 is nog voor Perl 5.6, hoger is voor Perl 5.8.

Daarnaast zijn er ook nog modules die niet in het voorvertaalde PPM-formaat verpakt zijn. Kijk bijvoorbeeld op CPAN (Comprehensive Perl Archive Network); ze hebben ook een speciale zoekmachine op search.cpan.org. Let wel, voor sommige heb je een C compiler nodig, omdat ze stukken van de module voor snelheid in C geprogrammeerd hebben. Dat geeft ook het voordeel van de voorvertaalde ActiveState modules aan. En ik heb er enkele voor eigen gebruik gemaakt, zie mijn Perl pagina's. Modules in mijn C:\Perl\Modules directory: G.pm; FreezeThaw.pm; MSG.pm, RPC.pm en een aantal eigen pm's (KmUtils, KmXmlMif om FrameMaker MIF naar XML om te zetten en omgedraaid, KmPlot voor eenvoudige plotroutines gebaseerd op Gd, ...).

Andere modules die ik ooit nuttig heb gevonden zijn:
    Tk-JPEG.ppd: JPEG uitbreidingen voor Tk
    Win32-DDE.ppd: DDE interfacing vanuit Perl, gebruikte ik om met PFE te interfacen
    Win32-API.ppd: handig om direct allerlei Windows DLL's aan te roepen.

Grafische IDE en debugger

Open Perl IDE

Voor het programmeren en debuggen in Perl onder Windows zijn er goede windowed debug-interfaces en IDEs (Integrated Development Environment) beschikbaar. Ik bedoel hier dus voor het ontwikkelen van Perl programma's, niet voor het gebruik vanuit Perl voor de programma's die je met Perl hebt gemaakt (waarvoor ik Tk aanraad, kijk eerder op deze pagina). Met syntax colouring, foutcontrole, handige debug-hulpjes, etc. Geeft de mogelijkheid om stap voor stap door programma's te gaan, variabelen te bekijken, etc. Voor beide IDE's moet je wel Perl geïnstalleerd hebben.

Opgelet: voor Perl 5.10 is de hiernaast genoemde 5.8 patch nodig, plus voeg in de dbTemplate.txt file op regel 45 de volgende tekst toe: use Win32;

Voor Windows ME, 98 etc: Kijk eens op de Open Perl IDE pages. Met syntax colouring, foutcontrole, handige debug-hulpjes, etc. Zeer aan te bevelen. Engelstalig. Let op: voor Perl 5.8 is er een patch nodig, hier te downloaden. Is nuttig om in deze IDE de help goed te configureren (via Edit/Preferences/Help): rechts-klik op het witte vlak, en selecteer de C:\Perl\html directory (of waar je dan ook Perl hebt geïnstalleerd). Zorg vervolgens dat er bij Keyword Index 'True' staat (klikken). Nu kan je vanuit een edit-window met F1 hulp over het Perl commando onder de cursor krijgen (eerste keer duurt even, gaat'ie een index van trefwoorden bouwen, maar dit is maar een keer).

EPIC: Eclipse Perl debugger

Vanaf Windows XP, en ook ondersteund op Linux en MAC, is er ook de Eclipse Perl IDE: EPIC heel goed. Uitgebreider (maar ook complexer bij installatie en in gebruik) dan de Open Perl IDE. Eclipse is een open source framework voor IDEs, en de Perl plugin is een uitstekende IDE gebaseerd hierop. Ook geschikt om Perl CGI scripts te testen. Installatie bestaat uit drie stappen: eerst zorgen dat je Java runtime hebt geïnstalleerd (vaak al het geval), dan eerst het Eclipse basis framework downloaden en installeren (alleen de runtime is voldoende: eclipse-platform-3.2.1-win32.zip, hoeft niet de volledige SDK!) , en dan (ongeveer zoals aangegeven in de EPIC user guide) de Perl IDE vanuit Eclipse laten laden.