Вывод в файл без дубликатов строк

  • Автор темы Domain
  • Дата начала
Статус
Закрыто для дальнейших ответов.
D

Domain

Гость
#1
Всем привет, помогите пожалуйста с проблемой. Перепробовал уже все что приходит в голову, немогу разобратсья.

Мне нужно добиться, чтобы файл ResultSEARCH.txt был без дубликатов строк

Вот текст имеющейся программы
opendir FDIR, "C:\diagram";
@diagram = readdir(FDIR);
closedir(FDIR);

$j = 2;
print "Search coincidence descriptions in diagrams:\n\n";
while (@diagram[$j])
{
open(desclist,"C:\desclist.txt") || die('Unable to open input file.');
open(diag,"C:\diagram\\".@diagram[$j]) || die('Unable to open input file.');

@descl = <desclist>;
@diag = <diag>;
$i = 0;

while($descl[$i])
{
foreach $tmp(@diag)
{
if ($tmp == $descl[$i])
{
open (results, ">>C:\\ResultSEARCH.txt") || die('Unable to open output file.');
while (<results>)
{
chomp;
if (m/$descl[$i]/i) { }
else {print results $descl[$i]}
}
close results;
}
}
$i++;
}
close diagram;
close desclist;

$j++;
}
Этот фрагмент почемуто не выполняет нужную мне задачу. Пробовал добавлять пару строк заранее в ResultSEARCH.txt, бесполезно. Цикл либо не выполняется либо вообще все зависает при открытии файла.

open (results, ">>C:\\ResultSEARCH.txt") || die('Unable to open output file.');
while (<results>)
{
chomp;
if (m/$descl[$i]/i) { }
else {print results $descl[$i]}
}
close results;
 
Статус
Закрыто для дальнейших ответов.