Вот кусок загрузки строк в массив
sub LoadAuth
{
my($dbh,$num_db,$a)=@_;
my($id,$max_id,$p,$rows,$sth);
$max_id=0;
$RowId_in_auth_tbl[$num_db]||=0; # id ������, �� ������� ������� ��� ������������, �.� ���� ���� ������ ��� ����������� ��� ����������
# ��������� ������ �� ������, ������� ����� �� �������������� � �������������� � ��������� 120 ���
# ����������� �� ������� ��� ������������� - ����� ���� ����� �� ���� ��������, � �� ����� ���� ���������� ���������� ���������� �������
$sth=$dbh->prepare("SELECT * FROM dblogin WHERE id>$RowId_in_auth_tbl[$num_db] AND time>($ut-120) ORDER BY id DESC");
$sth->execute or return;
while( $p=$sth->fetchrow_hashref )
{
$max_id||=$p->{id};
$id=$p->{mid};
if( !$id )
{ # ��������� ������
$id=$p->{act};
# ������ ���� ������ �� ����������� (����� ���� ������� ������������, �� �� ����� ������)
$rows=$dbh->do("DELETE FROM dblogin WHERE id=".$p->{id}." LIMIT 1");
next if $rows<1;
&ServiceWork($id);
next;
}
next if defined $a->{$id}; # ����� ������� ����������� ������������
$a->{$id}=[$p->{act},$p->{time},$p->{mac}]; # ����� � ����� �����������
}
$RowId_in_auth_tbl[$num_db]=$max_id if $max_id;# � ��������� ��� ��� ����������� ���� ����� id �� ��������� �� ��������
$p=time+$tt;
if( $p>$When_clean_auth_tbl{$num_db} )
{ # ���� ������ ����� - ������ ��� ������������ ������
$When_clean_auth_tbl{$num_db}=$p+58; # ������ 58 ���. ����� ������� ������������
$id=$RowId_in_auth_tbl[$num_db]? "DELETE FROM dblogin WHERE id<=$RowId_in_auth_tbl[$num_db]" : "DELETE FROM dblogin WHERE time<($ut-120)";
$dbh->do($id);
}
}
Что я здесь упустил?