DBMの容量制限
DBモジュールを使ってちょっとしたDBを作ってるんですが、容量制限
らしきものでひっかかってます。そう、1024byteの壁です。これを越えると
sdbm store returned -1, errno 22, key "0012018" at ./hoehoe.pl line ~.
と叱られてしまうのです。
他にもODBMはもちろんのこと、NDBMも試しましたが結果は同じです。
容量制限のない GDBM、DB_Fileは大丈夫でした。
しかし SDBM、NDBMは 4096byteまで大丈夫だったはず。なにか別の方法が
あるのでしょうか?
今回の試しに以下のものを書いてみました。「3000」を「1000」くらいに
すると通ります。DB_File、GDBMでは「3000」でも大丈夫です。
----------------------------------------
use Config;
use Fcntl;
use SDBM_File;
$flags = O_CREAT|O_RDWR|&BINARY;
tie( %HOE, 'SDBM_File', 'hoe', $flags, 0666 ) || die "Can't open DB";
$uiui .= 'UIUI' while( 3000 > length( $uiui ));
$HOE{'key'} = $uiui;
untie( %HOE );
print "ok\n";
exit;
sub BINARY{
return O_BINARY if( $Config{osname} =~ /^(MS)?Win/ );
}
お礼
初歩的な質問にご回答いただき 大変ありがとうございました。。。