Subject: | CGI::Session and UTF-8 problem |
I've got a CGI::Application based program that uses
CGI::Application::Plugin::Session (which is basically a wrapper on
CGI::Session) to handle the session stuff.
Recently, I wanted to change from the default encoding in mysql to
UTF-8. Easy enough, just issue:
$dbh->do(qq|set names 'utf8'|);
right after the new'ng up the database handle, right?
For reasons unclear to me, this causes some craziness over in
CGI::Session. Here's the error that it generates:
Error executing class callback in prerun stage: Can't locate object
method "errstr" via package "CGI::Session::Serialize::storable" at
/usr/lib/perl5/site_perl/5.8.6/CGI/Session.pm line 674.
Things go back to working fine if I take that line out.
I've checked to make sure that the mysql database is UTF-8 (and tables
too), on the off chance that would make a difference. I also blew away
any old sessions in case it might have had a problem with old data in
the old character set.
A perl monk suggested I report this as a bug. Here's the original
thread from over there:
http://perlmonks.org/?node_id=629094
This might be related to another utf8 related bug that's still open:
21981
I don't happen to have a short test script handy because CGI::Session is
so abstracted below CGI::Application in this case, but if you think its
useful I can try to put one together.
perl version: 5.8.6
os: fedora fc4