Riposto il codice cosi' gli date una controllatina:
codice:
%lista_txt = &read_lista_txt();
delete $lista_txt{$id};
&write_lista_txt(\%lista_txt);
sub read_lista_txt {
my ($news_id,$news_title,$news_status,$riga);
my %lista_txt;
open(LEGGI,"<lista.txt") || die "Error: (read_lista_txt) lista.txt\n$!";
flock(LEGGI,1);
while(<LEGGI>)
{
($news_id,$news_title,$news_status) = split(/\|/, $_);
$lista_txt{$news_id} = [ $news_title,$news_status ];
}
flock(LEGGI,8);
close(LEGGI);
return %lista_txt;
}
sub write_lista_txt {
my $lista_txt = shift;
my $riga;
open(SCRIVI,"+< lista.txt") || die "Error: (write_lista_txt) lista.txt\n$!";
flock(SCRIVI,2);
seek(SCRIVI,0,0); truncate(SCRIVI,0);
foreach (sort (keys $%lista_txt) )
{
$riga = $_ . '|' . $lista_txt{$_}[0] . '|' . $lista_txt{$_}[1] . '|';
print SCRIVI "$riga\n";
}
flock(SCRIVI,8);
close(SCRIVI);
}