| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > 2a вопроса |
| Автор: DiverD 23.11.2005, 19:04 |
| (1) ##################### Почему такой результат и как его исправить:? Мне нужн открыть файл подсчитать строки и запихачить их в хеш,а потом допустим между 3 и 4 вставить другую строкy.. (не пользуясь wc) ! Подскажите как??? заранее благодарен..! #!/usr/bin/perl -W my(%hesh,@array); open FILE, '<', '1.txt'; #где содержит 8 строк for ($i=0;<FILE>;$i++) { $hesh{$i} = <FILE>; } close FILE; print keys(%hesh),"\n"; print values(%hesh); #result: 1302 anonimouse end;root syslogd #1.txt user root admin anonimouse ftp syslogd proxy end; ##################### (2) Вот еще #!/usr/bin/perl -W my($file,@array); @flist = ("p.txt","p2.txt"); foreach $file (@flist) { open FILE, '<', $file; while (<FILE>) { push @array, $_ unless m/PERL/i; } close FILE; open WFILE, '>', "$file"; print WFILE join "",@array; close WFILE; } #result : В 1й файл удаляет строку,а со 2го удаляет но добавляет остатки с 1го... T.е. вот: p.txt >result:>: start; stop; p2.txt >result:>: start; stop; start; stop; Как поправить??? Заранее благодарен:) |
| Автор: korob2001 23.11.2005, 20:37 | ||||
Теперь мы имеем хеш, где номер строки это ключь, а сама строка - это значение. Только в данном примере, код открывает сам себя. Просто измени значение переменной $file. А зачем тебе нужен хеш? Для этой задачи будет достаточно и просто массива.
|
| Автор: DiverD 24.11.2005, 19:32 |
| zenx |