![]() |
Perl ?
Есть задача:
имею два файла с разделителями ";" делаю следующюю обработку со вложенным поиском при этом вложеный поиск она обрабатывает а внешний не хочет. ===== open outfile, "<C:/Perl/moduli/reestr/spisok1.txt" or die "не могу открыть\n" ; open outfile2, "<C:/Perl/moduli/reestr/spisok2.txt" or die "не могу открыть\n" ; foreach $item1 (<outfile>) { foreach $item2 (<outfile2>) { @array1=split(";",$item1); @array2=split(";",$item2); printf ("@array1[0]=@array2[0] \n"); if (@array1[0] eq @array2[0]) { printf ("@array1[0]=@array2[0] \n"); } } } У кого будут какие соображения. проблема проста но не могу ее решить. |
Код:
open (FILE, "spisok1.txt"); |
Хорошо! тогда следующий вопрос.
после проведения опытов выяснелось, что при втором вхождении список 2 уже кончился, и как возможно сделать повторное вхождение? (понятно изъяснился) |
Код:
open (FILE, "spisok1.txt"); |
Ну это ясно, а всетаки в чем ошибка в первом скрипте?
|
В ДНК. :) :) :) (это я шучу так)
Ошибка заключается в попытке циклического прохода файла - указатель сам по себе за здорово живешь на начало файла не перемещается. Вообще, при работе с файлами их нужно с перва считать в память, а потом уж обрабатывать. |
Дописал скрипт теперь нужно его запускать на win32
компелить комодой не желательно, если интерпритатор этого языка для win32. к примеру запускаешь его в батнике. что то в этом духе? |
Active Perl.
|
| Часовой пояс GMT +4, время: 19:46. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.