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

Prog für Win&Unix



<< |< 1 2 >| >> 13 Einträge, 2 Seiten
alexus-777
 2004-04-21 13:22
#81736 #81736
User since
2004-04-13
121 Artikel
BenutzerIn
[default_avatar]
Hallo,

welche Module(allgemein) braucht man um Programm unter Windows und Unix zum laufen zu bringen? Dabei denke ich an Environment Variablen, unterschiedliche Schreibweise für Pfade usw.

Kann jemand was dazu sagen?

Danke
Gruß Alexander
[E|B]
 2004-04-21 13:25
#81737 #81737
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Das kommt darauf an, was du programmieren möchtest.
Für grafische Oberflächen ist Tk oder eines der Win32-Modulreihe geeignet. Zum Pfade-suchen gibt es auch zig Module. Environment Variablen sind bereits vordefiniert.
Erzähl uns doch mal bitte, was du genau vor hast.
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
ptk
 2004-04-21 13:27
#81738 #81738
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Naja, Win32-Module sind denkbar ungeeignet, wenn das Teil auch unter Unix laufen soll :-) (siehe Originalbeitrag)
[E|B]
 2004-04-21 13:30
#81739 #81739
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Hupps, hab das Unix glatt überlesen, sorry...
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
Taulmarill
 2004-04-21 13:30
#81740 #81740
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
für grafische oberflächen kann ich wxPerl empfehlen. da sind auch einige module bei die nicht GUI spezifische probleme bei plattformübergreifender programmierung lösen.
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
alexus-777
 2004-04-21 13:57
#81741 #81741
User since
2004-04-13
121 Artikel
BenutzerIn
[default_avatar]
ich dachte vielleicht kann man dadurch einiges an Schreibarbeit sparen ;) und nicht extra Zeugs für unix und w32 schreiben.

also erstes Prob:

<Verzeichnisse>
  unix: /home/user/datei.txt
  win32: C:\\Dokumente und Einstellungen\user\datei.txt


zweites Prob:

wie ermitle ich unter win32 den aktiven user?
bei unix lese ich $USER aus
hab zwar ne Lösung, aber gibt es vielleicht ne bessere?
##############
 #Aktuellen User für Windows ermitteln
  sub set_Env_user_win {
    my $aktueller_user=`set`;
    (my $user=$aktueller_user)=~/USERNAME=(\w+)/;
  }
##############
getlogin und getpwuid schlugen fehl

vielleicht gibt es noch was, was auf beiden systemen funzt?

Gruß Alexander
[E|B]
 2004-04-21 14:46
#81742 #81742
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
1. Problem: File::Find
2. Problem: Was meinst du mit aktiver User? Ich finde deine Möglichkeit schon gut. Etwas betriebssystemunabhängiges gibt es da AFAIK eh nicht.
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
ptk
 2004-04-21 14:53
#81743 #81743
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Du kannst dir mal den Sourcecode von Win32Util.pm angucken, dort gibt es eine Funktion get_user_name, die verschiedene Loesungsansaetze enthaelt.

Unter Unix wuerde ich nicht $ENV{USER} verwenden, da die Existenz dieser Variable nicht garantiert ist. Besser ist es, mit $< oder $> und getpwuid zu arbeiten.
Gast Gast
 2004-04-26 01:58
#81744 #81744
Also aus leidvoller Erfahrung kann ich sagen dass unter keinem Betriebssystem der volle Satz %ENV gewährleistet ist.
Was die w.o.g. Pfadangaben anbelangt, so ist es Perl schlichtweg egal ob da nun ein / oder ein \ auftaucht - Perl ist intelligent und weiß daher was gemeint ist.
Für mehr als 90% aller Funktionen die Perl bietet (und das gilt auch für die Module), sind keine gesonderten Win::WhatEver erforderlich (selbst der Zugriff auf MS Access/SQL-Server Datenbanken läuft mit DBI schneller und reibungsloser da keine serverseitige DNS erforderlich ist - ist das nicht nett).
Strat
 2004-04-26 16:00
#81745 #81745
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
nebenbei kann man auch grob auf das betriebssystem abfragen, indem man den Inhalt von $^O ausliest. I.d.R. muss man da nur auf Windows ($^O eq 'MSWin32' ) abfragen (fuer cygwin reicht haeufig der Unix-Weg).

Zu den Umgebungsvariablen: wenn es sich um ein firmennetzwerk handelt, koenntest du mal mit den admins sprechen, dass sie die in den logon-scripten setzen...\n\n

<!--EDIT|Strat|1082980901-->
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
<< |< 1 2 >| >> 13 Einträge, 2 Seiten



View all threads created 2004-04-21 13:22.