[perl] exec en internationalization prob

Pagina: 1
Acties:

  • Klaus_1250
  • Registratie: December 2000
  • Laatst online: 24-08 19:17
ik wil in een cgi-script iets heel simpels doen:

exec('whois', @whois_arguments)

Geen probleem zou je zeggen TOTDAT ik dit probeerde:
@whois_arguments=('-p','$ip_address');

Doordat ik dit bovenaan mijn cgi-script heb staan:

use locale;
use POSIX qw(locale_h sys_wait_h);
setlocale(LC_CTYPE, "en_US.ISO8859-1");

gebeurt er schijnbaar iets vreemd met die -p, want whois wil hem niet pakken. Wel als ik het vanaf de shell doe of zonder die locale-zooi (die heb ik alleen wel nodig).

OS is FreeBSD 4.6, Perl-versie is 5.8.0

Weet iemand hoe ik dat kan fixen???

[ Voor 15% gewijzigd door Klaus_1250 op 15-01-2003 15:23 ]


Verwijderd

mmm zou dat niet als uitvoer
whois-p 192.168.0.1
geven?

dus met geen spatsie tussen whois en -p?

-edit-
|:( never mind, want met mijn theory zou dat ip adress er dan ook tegenaan geplakt moeten zitten.

[ Voor 114% gewijzigd door Verwijderd op 15-01-2003 22:24 ]


Verwijderd

Ik vermoed dat de '-' een andere codering (misschien bestaande uit meerdere bytes) heeft in en_US.ISO8859-1 dan in gewoon ascii.

Probeer eens zoiets:
Perl:
1
2
3
4
5
...
$old_locale = setlocale(LC_CTYPE, "");
@whois_arguments=('-p','$ip_address');
exec('whois', @whois_arguments);
setlocale(LC_CTYPE,$old_locale);