Хотелось бы так:
CREATE TABLE config ( flags BIT(32) );
INSERT INTO config VALUES (b'10111001');
my $fl=$sth->fetchrow_hashref()->{'flags'};
if ($fl & 8) {
doSomething();
}
В действительности «битовое» поле MySQL неясно как использовать на Perl даже если заморочиться с $int=unpack(«I», $fl) или чем-то подобным. В последнем случае, например, биты в $int почему-то оказываются в «перевёрнутом порядке» (т.е. обратном тому, в котором я их писал в MySQL).
В общем, как считаете, стоит ли с этим иметь дело или плюнуть и просто юзать обычный мускулевский INT?
Сама по себе концепция «набора флагов» мне весьма удобна, не хотелось бы от неё отказыаться.
P.S. Пока более-менее адекватным вариантом оказался этот:
use DBI;
$db=DBI->connect("dbi:mysql:database=docs_status","XXXX","YYYY");
$s=$db->prepare("select * from db_config where id=2"); $s->execute();
$fl=$s->fetchrow_hashref()->{"flags"};
$v=unpack( "N", $fl );
print "V=$v\n";