So, the question is, what's an elegant way to eliminate this warning? I could modify Apache::DBI to do it (although filtering a specific warning, as opposed to simply turning them all off temporarilly, could be a pain). I could install a WARN handler. Ick. Any other bright ideas?
I don't know if it qualifies as a bright idea, but could you implement a filter class using tie?
Something along the lines of:
#!/usr/bin/perl
use warnings; use strict;
package FilterError; use base 'Tie::Handle';
sub TIEHANDLE { bless {}, shift; }
my %filters;
$filters{ 'non_tranasctional' } = qr[Some non-transactional changed tables];
sub PRINT { my $self = shift; my $string = join " ", @_; if ($string =~ $filters{ 'non_tranasctional' }) { print "Content filtered\n"; } else { print "$string"; } }
package main;
tie *STDERR, 'FilterError' or die "Can't tie STDERR: $!";
warn( "Food is good" ); warn( "Some non-transactional changed tables couldn't be rolled back" );
- Perrin
-- Douglas
-- Reporting bugs: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html