Замечательно! Я был очень обрадован такой возможностью хранения данных как массивы в хеше!!!! Однако увы....
В перле есть замечательная возможность хранения хешей в dbm-файлах - имеющих структуру файлов баз данных, чем я успешно и пользовался:
Запись в базу:
dbmopen(%disk, $tdisk, 0644) || die "Ошибка DBM-файла $tdisk: $!";
$disk{$id}= $number.":::".$name.":::".$ename.":::".$state.":::".$date;
dbmclose(%disk);
Чтение из базы:
dbmopen(%disk, $tdisk, 0644) || die "Ошибка DBM-файла $tdisk: $!";
$_ =$disk{$id};
($number,$name,$ename,$state,$date) = split(/:::/);
dbmclose(%disk);
В данном случае все прекрасно, за исключением известных проблемм с сортировкой по отдельным полям....
Так вот самое обидное!!!!!!!!:
dbmopen(%disk, $tdisk, 0644) || die "Ошибка DBM-файла $tdisk: $!";
$disk{1}[0]="Matrix";
dbmclose(%disk);
**************************************
%disk=();
**************************************
dbmopen(%disk, $tdisk, 0644) || die "Ошибка DBM-файла $tdisk: $!";
$result = $disk{1}[0];
dbmclose(%disk);
# $result НЕ равен "Matrix"
:(((((((((
то есть выходит, что замечательная возможность хранения хешей в dbm-файлах не работает для хешей массивов??????
или я ошибаюсь?
|