zumicator
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Добрый день, есть желание поучиться немного в perl и хочу поработать с текстовым файлом: Код: 23100|2|0|32|2|1111|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0||1|0|0|0|1|0|13|0||0|0|0|0| 23101|2|0|33|2|1111|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0||1|0|0|0|1|0|0|0||0|0|0|0| 23102|2|0|34|2|1111|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0||1|0|0|0|1|0|0|0||0|0|0|0| 23103|2|0|35|2|1111|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0||1|0|0|0|1|0|10|0||0|0|0|0| 23104|2|0|36|2|1111|1|0|0|0|0|0|0|0|0|0|0|0|0|0|0||1|0|0|0|1|0||0||0|0|0|0| 23105|2|0|37|2|1111|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0||1|0|0|0|1|0||0||0|0|0|0| 23106|2|0|38|2|1111|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0||1|0|0|0|1|0|0|0||0|0|0|0| 23107|2|0|39|0|1111|0|0|0|0|0|0|0|0|0|0|0|0|11|0|0||1|0|0|0|1|0|10|0||0|0|0|0| 23108|2|0|40|0|1111|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0||1|0|0|0|1|0|10|0||0|0|0|0| 23109|2|0|41|2|1111|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0||1|0|0|0|1|0|0|0||0|0|0|0| | для осуществления задуманного надёргал кусков из интернетов и получилось вот, что: Код: #!/usr/bin/perl -w ############################################################# open my $file, '<', 'subscriber-1.unl' or die "Невозможно открыть файл: $!\n"; while(<$file>) { my $outline = "" ; my @fields = split(/\|/, <$file>) ; for ($j = 0; $j < @fields; $j++) { if (($j == 35) ) #если полей насчитает 35, то добавит в конце ещё 15 |0| { $outline = $outline . "0\|" x 15; } $outline = $outline . "$fields[$j]\|" ; } chop $outline ; print $outline; } | Непонимаю почему здесь после разделения строк на поля я имею на выходе только нечётные строки из файла: Код: 23101|2|0|33|2|1111|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0||1|0|0|0|1|0|0|0||0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0| 23103|2|0|35|2|1111|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0||1|0|0|0|1|0|10|0||0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0| 23105|2|0|37|2|1111|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0||1|0|0|0|1|0||0||0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0| 23107|2|0|39|0|1111|0|0|0|0|0|0|0|0|0|0|0|0|11|0|0||1|0|0|0|1|0|10|0||0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0| 23109|2|0|41|2|1111|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0||1|0|0|0|1|0|0|0||0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0| |
|