Perl

No type library matching "Microsoft Outlook" found

14. Juli 2016 · Programmierung · andreas · Kein Kommentar

office64_typelibFunktioniert in der Kombination mit einer 32-bit Microsoft Office-2013-Version die Zeile

use Win32::OLE::Const 'Microsoft Outlook';

problemlos, so wird sie bei einem installierten 64-bit Office mit folgendem Fehler quittiert:

# No type library matching "Microsoft Outlook" found at ... # Win32::OLE(0.1712): GetOleTypeLibObject() Not a Win32::OLE::TypeLib object at C:/Perl64/lib/Win32/OLE/Const.pm line 49

Eine längere Suche führte schließlich zum entscheidenen Hinweis: bei der 64-bit Installation wird der Schlüssel für die Typelib vom Office-Installer nur als “win64” gesetzt, Perl aber sucht nach einem “win32” Eintrag.

Ein Workaround ist somit recht einfach: unterhalb des Registrierungspfads

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node\TypeLib

nach dem Eintrag für die “MSOUTL.OLB” suchen und passend zum “win64” Key händisch einen “win32” Key mit gleichem Inhalt erzeugen.


Installation des vSphere SDK for Perl Package unter Debian

17. November 2014 · Betriebssysteme · andreas · Kein Kommentar

Debian gehört nicht zu den standardmäßig unterstützten Plattformen für den Betrieb des vSphere SDK for Perl. Damit es trotzdem läuft, sind ein paar kleine Anpassungen nötig:

Als erstes sollte die im Paket enthaltene und zur Installation verwendete Datei “vmware-install.pl” modifiziert werden, welche im Zuge der Installation das verwendete Betriebssystem ermittelt und somit auch die zu verwendenden Systemwerkzeuge festlegt.

Nach einem

vi vmware-install.pl

reicht es, nach dem String “ubuntu” zu suchen und dessen zweites Vorkommen durch “debian” zu ersetzen.

Anschließend müssen noch die fehlenden Pakete

Archive::Zip 1.28 or newer Crypt::SSLeay 0.55 or newer Class::MethodMaker 2.10 or newer HTML::Parser 3.60 or newer Data::Dump 1.15 or newer SOAP::Lite 0.710.08 or newer URI 1.37 or newer XML::SAX 0.16 or newer XML::NamespaceSupport 1.09 or newer XML::LibXML::Common 0.13 or newer XML::LibXML 1.63 or newer LWP 5.805 or newer LWP::Protocol::https 5.805 or newer

nachinstalliert werden, damit die benötigten Abhängigkeiten erfüllt sind, was ein

apt-get install libssl-dev libarchive-zip-perl libcrypt-ssleay-perl libclass-methodmaker-perl libhtml-parser-perl libdata-dump-perl libsoap-lite-perl libxml-sax-perl libxml-libxml-perl libtime-duration-parse-perl

erledigt. Debian konform sollten die ausführbaren Dateien im letzten Schritt statt nach “/usr/bin” in das Verzeichnis “/opt/bin” kopiert werden.


Alle Jahre wieder

24. Dezember 2013 · Programmierung · andreas · Kein Kommentar

Allen Bloglesern ein entspanntes Weihnachtsfest und einen unfallfreien Rutsch in ein gesundes und glückliches 2014!

+ | / \ ( i ) /_ _\ ( i i ) /._ _.\ ( i i i ) /-._ _.-\ ( i i i i ) /'-._ _.-'\ ( i i i i i ) ^'-._ _.-'^ |_| andi 2oo4

Anbei noch ein Tannebäumchen, das ich 2004 außer Konkurrenz in Perl für den Weihnachtsbaum-Wettbewerb von Thomas Walter erstellt habe.

Wer das entsprechende Skript habem möchte - bitteschön!

Download (xmastree.rar; RAR-archive; 0kB)


XML-Dateien aufhübschen

19. Dezember 2013 · Programmierung · andreas · Kein Kommentar

Genau wie Maschinen oft Probleme haben, etwas für Menschen problemlos verständliches zu verarbeiten, so blickt ein Mensch dann und wann auf den Inhalt einer maschinenlesbaren Datei und kann darin nur wenig erkennen.

Geht es um die Verarbeitung von XML-Dateien, so können wenige Zeilen Perl eine deutliche Verbesserung schaffen - zum Beispiel bei der Aufbereitung einer “SEPA Payments"-XML-Datei.

pretty.pl
use strict; use warnings; use XML::LibXML; use XML::LibXML::PrettyPrint; my $file = $ARGV[0] || die "usage: pretty.pl inputfile.xml\n"; my $document = XML::LibXML->new->parse_file($file); my $pp = XML::LibXML::PrettyPrint->new( indent_string => chr(9), element => { compact => [qw/MsgId CreDtTm PmtInfId PmtMtd NbOfTxs CtrlSum Cd ReqdExctnDt Nm IBAN BIC ChrgBr EndToEndId InstdAmt Ustrd/], } ); $pp->pretty_print($document); open(sFILE, '>pretty-' . $file); print sFILE $document->toString; close (sFILE);

Die hauptsächliche Arbeit übernimmt das Modul XML::LibXML::PrettyPrint, dessen Ausgabe mit Hilfe einer Reihe von Parametern an die jeweiligen Bedürfnisse angepasst werden kann.


ActivePerls "Set up gcc environment"-Meldung unterdrücken

05. August 2013 · Programmierung · andreas · Kein Kommentar

Neuere ActivePerl-Varianten nerven beim Start eines Skripts mit der Meldung “Set up gcc environment”, für deren Deaktivierung es auf den ersten Blick keinen offensichtlichen Schalter gibt.

Die Lösung bringt ein Blick in die Doku des Moduls “ActivePerl::Config”

perldoc ActivePerl::Config

welche die Umgebungsvariable “ACTIVEPERL_CONFIG_SILENT” ausspuckt, die genau diesen Zweck erfüllt:

ACTIVEPERL_CONFIG_SILENT

If set to a TRUE value (e.g. “1”), suppress warnings on STDERR when new compilation environments are set up. This happens when a supported compiler is detected that is different from the one that perl was originally built with.