Re: Perl : identification de la plate-forme

Page principale

Répondre à ce message
Auteur: marc.terrier
Date:  
À: Edgar Bonet, p.karatchentzeff
CC: Liste Guilde
Sujet: Re: Perl : identification de la plate-forme
Selon Edgar Bonet <guilde@???>:

> Le mercredi 18 janvier, marc.terrier@??? a écrit :
> > J'ai un script en Perl qui doit pouvoir fonctionner sous Windows et
> > sous Linux, et j'aimerais pouvoir détecter la plate-forme utilisée, de
> > façon à lui faire gérer correctement les '/' et les '\' dans les noms
> > de fichiers. Savez-vous comment je pourrais m'y prendre ?
>
> Juste une idée débile comme ça...
>
>     if (-f "/bin/sh") { print "Ça ressemble à un Unix\n"; }


Ton idée n'est pas débile ;-), Edgar, en ce sens qu'elle a le mérite de ne pas
faire apparaître de message d'erreur quand on est sous Windows ( contrairement
au « system ( "uname -a" ); » que j'avais essayé, et qui donnait évidemment «
'uname' is not recognized as an internal or external command, operable program
or batch file. »

Ceci étant, l'idée suggérée par Patrice ( $^O ) est encore mieux, puisqu'elle
marche dans tous les cas, sans le moindre message d'erreur ( même dans le cas,
peu probable, il est vrai, où /bin/sh manquerait à l'appel ) :

   Windows XP                 : perl -e 'print $^O' ==> MSWin32
   Red Hat Entreprise Linux 3 : perl -e 'print $^O' ==> linux


et même ( cadeau bonux ) :

DEC OSF1 : perl -e 'print $^O' ==> dec_osf
AIX 5.2 : perl -e 'print $^O' ==> aix
Solaris 8 : perl -e 'print $^O' ==> solaris

Elle est pas belle, la vie ? Merci à tous les deux.

--
Marc TERRIER
http://marc.terrier.free.fr