Spreadsheet::ParseExcel ab 0.28 "broken"

Spreadsheet::ParseExcel ab 0.28 "broken"

am 22.02.2007 02:09:25 von Mirco Wahab

Nachdem ich mehr oder weniger zufällig
auf Spreadsheet::ParseExcel 0.28 up-
gedatet hatte, 'broke the whole application' ;-)

WTF!

Nach stundenlangem Herumsuchen fand ich
dann die Lösung: das Modul gibt standard-
mässig UTF8 aus, damit Scheitern einige
Vergleiche gegen latin1-Strings im
sonstigen Code.

Aaaargh! Kann das keiner dokumentieren?

Möglicherweise passiert das deshalb, weil
das Modul nach dem Laden unter utf8 steht!?

Glücklicherweise konnte ich jenem das
wieder abgewöhnen durch die Sequenz:

...
use encoding 'latin1';
use Spreadsheet::ParseExcel;
...

wonach alles wieder wie früher funktioniert.

(schweiss von der Stirn wisch ....)

Mirco

Re: Spreadsheet::ParseExcel ab 0.28 "broken"

am 22.02.2007 09:30:56 von Mirco Wahab

Mirco Wahab wrote:
> Nachdem ich mehr oder weniger zufällig
> auf Spreadsheet::ParseExcel 0.28 up-
> gedatet hatte, 'broke the whole application' ;-)
> ...
> Glücklicherweise konnte ich jenem das
> wieder abgewöhnen durch die Sequenz:
>
> ...
> use encoding 'latin1';
> use Spreadsheet::ParseExcel;
> ...

....

> wonach alles wieder wie früher funktioniert.

Leider Irrtum, Perl hält natürlich "ab dann"
utf8-Strings (aus Spreadsheet::ParseExcel::$celldata->[$y][$x]->Value)
vor und vergleicht dann halt korrekt gegen non-utf8-Strings von anderswo.

Am Ende muss ich eine explizite Konvertierung:

...
my $ccutf8 = $celldata->[$y][$x]->Value;

$progdata[$x] = encode('iso-8859-1', $ccutf8);
...

machen. Hmmm ...


Viele Grüße

Mirco