NOTE: This is very much a document in progress so please bare that in mind when reading it - I will be updating it.
There is an ongoing discussion on the dbi-dev mailing list about unicode support in DBI. I've been trying to collect information on DBD support for Unicode in the hope it will help show whether there are inconsistencies in DBDs and whether the Perl DBI could help defining Unicode support. Originally, I thought about doing a talk at the London Perl Workshop but I've been rather preoccupied with personal issues and didn't think I'd even make the LPW until early last week. What follows is a very cut down version of a large document I started writing to catalogue Unicode support in DBDs. I've not done some DBDs yet - notably DB2 (because I no longer have it, although castaway on #dbix-class ran some code for me) and Postgres (because I know people are currently working on Unicode support in DBD::Pg). If you have a DBD I've not covered I'd love to hear from you and especially if you can take one of my examples and change it to work for your DBD.
I have just uploaded 1.32_2 development release of DBD::ODBC. This contains one rather nice enhancement for Windows users which adds the new odbc_driver_complete attribute described as below. This allows DBD::ODBC on Windows to obtain a window handle which means if the ODBC Driver Manager or ODBC Driver needs to throw a dialogue to complete the data source or perhaps re-enter an expired password it can. Any testing will be greatly appreciated. The full changes since 1.31 are:
Increasingly I'm seeing reports of modules failing (e.g., t/test_autoencoding_conversion.t fails and Gofer test failures with PERL_UNICODE=AS and PERL_UNICODE and smokes) when PERL_UNICODE is set - I see others saying much the same thing and apparently eve
What module do you use when doing any kind of HTTP programming - LWP? By far the most popular module for the HTTP protocol in Perl and one which just works and works well with a minimal amount of application code. Now you might be put off by the 123 bug reports in the LWP rt queue but in all my time I've never hit one myself - other than an issue which was not LWP but Perl and to do with tainted data used with LWP (see Why is taint mode so slow?).
I maintian DBD::ODBC but I am wrestling with problems coping with 64 bit platforms. The problem is rather complex but I'm hoping that by describing it here someone will help come up with a logical answer to at least stop DBD::ODBC building in circumstances which are suspect.
I have just uploaded DBD::ODBC 1.31 to pause. This is the culmination of 7 development releases and I thought it was time to do an official release. Due to personal issues I am unlikely to be doing another update to DBD::ODBC in the near future but if you find issues please report them on RT and I'll try my best. The changes since 1.29 are below. There are significant changes since the last official release and a few changes in behaviour. If you didn't test a development release and it now goes wrong I'm sorry but after 7 development releases you had your chance.
Like many people I've used the Perl module Data::Dumper for years and been reasonably happy with the output. Generally I want the output rolled up into the smallest (line-wise) output and Data::Dumper allows this. However, I use Math::FixedPrecision quite a bit in this project and as it is a blessed object the fixed precision numbers of 2 come out ridiculously verbose and almost unreadable.
I've been using Perl on and off for over 15 years. In the last 10 years of so I've been using Perl a lot in my work and play. I don't have a huge list of modules I look after but I maintain a couple of modules and contribute to many. What never ceases to amaze me is the Perl community. By that I mean the huge group of people working tirelessly to improve the Perl core, write Perl modules and applications, organise conferences and workshops, test Perl and CPAN, report issues, support Perl on IRC, the many mailing lists and web sites and give freely their knowledge and expertise to others. Thank you.
A word of warning. The build process for DBD::ODBC against unixODBC on 64 bit platforms may not produce a workable solution perhaps even segfaulting. The short reason is that few Linux distributions/packages of unixODBC are up to date and few distribute unixODBC's odbc_config which DBD::ODBC needs to ascertain the compiler defines required to build a DBI driver which matches unixODBC. The long answer which which includes a workaround follows.