Thread Platformunabhängigen code UNIX/Win32
(7 answers)
Opened by Schnullux at 2008-07-24 18:04
Moin Wissende dieser Welt!
Ich "darf" nun auch code für Win32 basteln der aber in dem gleichen file ( modul ) wie der "richtige :-) " stehen soll. Kurz; das Modul soll für den Benutzer platformunabhängig nutzbar sein. Mein Wunsch wäre also etwas wie eine generische log Funktion: Code (perl): (dl
)
1 2 3 use magrathea::generic; # use a generic log function like xlog(LOG_DEBUG,"This is a debug log"); Nun stoße ich natürlich auf ein paar Hindernisse die Ihr sicher schon laaaange gelöst habt. Und weil Ihr ja nett seid, könnt Ihr einem armen unwissenden bitte aufschlauen: 1) Wird die interpreterZeile Code: (dl
)
#! /usr/bin/perl -w 2) Wie kann ich System unterschiedliche module einbinden UND im code verwenden ohne das diese auf dem jeweils "falschen" System zu Problemen führen ( sowas wie #ifdef )? Hierzu mal ein Beispiel das SO NICHT funktioniert aber in etwa zeigt was ich möchte: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 #! /usr/bin/perl # load libs use strict; use warnings; use POSIX 'uname'; use Unix::Syslog; use Unix::Syslog qw(:macros); require Win32::EventLog; # global vars ( arrrghhh, like an undeath mattress ;-) my $handle = undef; my ($sys) = &uname; # some lines later.... if($sys =~ /window/i) { #init win32 event log $handle = Win32::EventLog->new("Zaphod"); } else { # init UNIX syslog &openlog("Trillian","pid, ndelay, nowait",LOG_LOCAL4); } # some functions/lines later part of generic xlog() function... :-) if($sys =~ /window/i) { my %win; $win{'Computer'} = "Eddy"; $win{'Source'} = "Hard of Gold"; $win{'Category'} = undef; $win{'EventID'} = 42; $win{'Data'} = undef; $win{'Strings'} = "Dont interrupt me, I computing real earth Tee!" $handle->Report(\%win); } else { &syslog(LOG_DEBUG,"Where is Marvin??"); } # And now close all... if($sys =~ /window/i) { $handle->Close; } else { &closelog(); } Wäre toll wenn Ihr mir anhand des Beispieles Tipps geben könntet :-) Gruß Karsten --
//// Never forget your towel \\\\ *********************************************************** |