В моём самописном форуме темы хранятся в отдельных файлах вида "1.top". Все пронумерованы и выводятся по порядку. Поэтому при удалении, допустим, третьей темы при наличии четырёх, исчезает и четвертая. Поэтому при удалении надо переименовывать "4.top" на "3.top"
Написал такой код:
unlink "sects/$secn/$tp.top"; #в переменной $tp указан номер удаляемого топа
opendir SD, "sects/$secn";
@at=readdir SD;
closedir SD;
foreach $top (@at)
{
if (($top ne ".") and ($top ne ".."))
{
$num = grep($top, ".top");
if ($num>$tp)
{
$num--;
rename "sects/$secn/$top", "sects/$secn/$num.top";
}
}
}
---
Но он почему-то не работает. Вообще не даёт никакого эффекта. Подскажите, пожалуйста, в чём я ошибся тут.
|