lima1 has asked for the wisdom of the Perl Monks concerning the following question:
I have some trouble changing the decimal point from "." to "," temporarily for parsing a CSV file. It works with:
But this requires that "fr_FR" is installed. The localconf() function returns a nice hash, but there seems to be no counterpart for setting the locale with such a hash.setlocale LC_NUMERIC, "fr_FR"; #parse .... #revert setlocale LC_NUMERIC, "";
What do you recommend?
Update: Sorry, I was very unclear. Please assume I want to load a CSV (tab or semicolon separated) file and I know that the decimal point is comma. Such files are unfortunately quite common in European countries. The above code seems to work in the way that numerical columns are numeric in Perl after parsing. But it seems like a hack to hard code a temporary locale which uses a comma as decimal point.
Update 2: Problem seems to be solved Re^7: Change decimal point temporarily. There seems to be no way to avoid a regex on all fields. But can anybody explain what's happening internally here Re^6: Change decimal point temporarily? I don't quite get it... Seems more like a bug than a feature to me.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Change decimal point temporarily
by ikegami (Patriarch) on Aug 02, 2010 at 20:52 UTC | |
by lima1 (Curate) on Aug 02, 2010 at 21:01 UTC | |
by ikegami (Patriarch) on Aug 02, 2010 at 22:35 UTC | |
by Jenda (Abbot) on Aug 02, 2010 at 23:05 UTC | |
by ikegami (Patriarch) on Aug 02, 2010 at 23:35 UTC | |
| |
by fod (Friar) on Aug 02, 2010 at 22:53 UTC | |
by lima1 (Curate) on Aug 02, 2010 at 23:06 UTC | |
by jeffa (Bishop) on Aug 02, 2010 at 23:30 UTC | |
Re: Change decimal point temporarily
by nvivek (Vicar) on Aug 03, 2010 at 04:51 UTC |