Subject: | Wx 2.9 manipulates locale |
at least the LC_NUMERIC setting
test case:
############################
use 5.12.0;
use warnings;
say 8.3;
require Alien::wxWidgets;
say 8.3;
require Wx;
say 8.3;
############################
output:
############
8.3
8.3
8,3
############
As you can see, after including the Wx-Module, the setting changed.
It does not only affect perl self. I found this error after i searched
the reason for wired DBD::SQLite output.
A call to POSIX::setlocale( LC_NUMERIC, 'C' ) can revert this, but i can
not predict the consequences.
---------------------
OS: Win7 64
$Wx::VERSION: 0,9916
Wx::wxVERSION: 2,009004
Perl -V:
Summary of my perl5 (revision 5 version 16 subversion 1) configuration:
Platform:
osname=MSWin32, osvers=4.0, archname=MSWin32-x64-multi-thread
uname='Win32 strawberry-perl 5.16.1.1 #1 Thu Aug 9 07:49:27 2012 x64'
config_args='undef'
hint=recommended, useposix=true, d_sigaction=undef
useithreads=define, usemultiplicity=define
useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
use64bitint=define, use64bitall=undef, uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='gcc', ccflags =' -s -O2 -DWIN32 -DWIN64 -DCONSERVATIVE
-DPERL_TEXTMODE_
SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fno-strict-aliasing
-mms-bi
tfields',
optimize='-s -O2',
cppflags='-DWIN32'
ccversion='', gccversion='4.6.3', gccosandvers=''
intsize=4, longsize=4, ptrsize=8, doublesize=8, byteorder=12345678
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
ivtype='long long', ivsize=8, nvtype='double', nvsize=8, Off_t='long
long',
lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='g++', ldflags ='-s -L"C:\strawberry\5-16-1-64\perl\lib\CORE"
-L"C:\straw
berry\5-16-1-64\c\lib"'
libpth=C:\strawberry\5-16-1-64\c\lib
C:\strawberry\5-16-1-64\c\x86_64-w64-mi
ngw32\lib
libs=-lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool -lcomdlg32
-ladvapi32
-lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr -lwinmm
-lversion
-lodbc32 -lodbccp32 -lcomctl32
perllibs=-lmoldname -lkernel32 -luser32 -lgdi32 -lwinspool
-lcomdlg32 -ladva
pi32 -lshell32 -lole32 -loleaut32 -lnetapi32 -luuid -lws2_32 -lmpr
-lwinmm -lver
sion -lodbc32 -lodbccp32 -lcomctl32
libc=, so=dll, useshrplib=true, libperl=libperl516.a
gnulibc_version=''
Dynamic Linking:
dlsrc=dl_win32.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' '
cccdlflags=' ', lddlflags='-mdll -s
-L"C:\strawberry\5-16-1-64\perl\lib\CORE
" -L"C:\strawberry\5-16-1-64\c\lib"'
Characteristics of this binary (from libperl):
Compile-time options: HAS_TIMES HAVE_INTERP_INTERN MULTIPLICITY
PERLIO_LAYERS PERL_DONT_CREATE_GVSV
PERL_IMPLICIT_CONTEXT PERL_IMPLICIT_SYS
PERL_MALLOC_WRAP PERL_PRESERVE_IVUV PL_OP_SLAB_ALLOC
USE_64_BIT_INT USE_ITHREADS USE_LARGE_FILES
USE_LOCALE USE_LOCALE_COLLATE USE_LOCALE_CTYPE
USE_LOCALE_NUMERIC USE_PERLIO USE_PERL_ATOF
Built under MSWin32
Compiled at Aug 9 2012 07:55:51
%ENV:
PERL_BASE="5-16-1-64"
PERL_EXE="C:\strawberry\5-16-1-64\perl\bin\perl.exe"
@INC:
C:/strawberry/5-16-1-64/perl/site/lib
C:/strawberry/5-16-1-64/perl/vendor/lib
C:/strawberry/5-16-1-64/perl/lib
.
---
on an "old" perl (5.14) with Wx 2.8 everything seems fine