![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
StargazerV |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 14.1.2008 Репутация: нет Всего: нет |
Если коротко, то я пытаюсь прочесть строку из файла, получить к ней дополнение от пользователя из STDIN и обьеденив их вместе, куда-то положить. Куда-то, котопу, что это не важно, куда. Проблема именно с объединением.
в результыте подобного кода, получаю к примеру следующие результаты: строка из открытого файла Enter row documentation: документация документацияытого файла т.е. при объединении данные как бы накладываются один на другой, вместо объединения. Есть мысли? |
|||
|
||||
shamber |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1422 Регистрация: 5.9.2006 Где: Россия Репутация: 17 Всего: 18 |
Начните с простого
|
|||
|
||||
StargazerV |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 14.1.2008 Репутация: нет Всего: нет |
уже есть.
я не уточнил, та часть, которую я выложил, это только проблематичная часть, т.е. не весь код. Есть и use strict; и всякое разное. Добавлено через 50 секунд На всякий случай, вот ВЕСЬ код
|
|||
|
||||
shamber |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1422 Регистрация: 5.9.2006 Где: Россия Репутация: 17 Всего: 18 |
StargazerV, описанных вами проблем не испытываю. У меня все печатается как и ожидается.
test.txt
test.pl
Это сообщение отредактировал(а) shamber - 3.4.2010, 19:33 |
||||||
|
|||||||
StargazerV |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 14.1.2008 Репутация: нет Всего: нет |
мде.... а это уже совсем грустно.
возможно проблема в интерпритаторе перла? изначально пишу все под линукс. Запускаю через cygwin, в котором установлен perl. Если кто не в курсе, cygwin создает под windows оболочку линуска. Но я попробую сейчас запустить скрипт на прямую в линуксе, возможно прблема в cygwin, хотя сомнительно. |
|||
|
||||
shamber |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1422 Регистрация: 5.9.2006 Где: Россия Репутация: 17 Всего: 18 |
||||
|
||||
StargazerV |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 14.1.2008 Репутация: нет Всего: нет |
Да в принципе ничего. Корочи проблема в том, что запускается все это под линуксом (так надо). И под линуксом испытывается вышеуказанная проблема. в Win не пробовал, но и не надо.
|
|||
|
||||
shamber |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1422 Регистрация: 5.9.2006 Где: Россия Репутация: 17 Всего: 18 |
StargazerV, а нормальный Linux не пробовали запускать?
|
|||
|
||||
StargazerV |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 14.1.2008 Репутация: нет Всего: нет |
пробовали, пробовали. Результат тот же.
|
|||
|
||||
shamber |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1422 Регистрация: 5.9.2006 Где: Россия Репутация: 17 Всего: 18 |
StargazerV, Я тоже пробовал
![]() |
|||
|
||||
StargazerV |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 14.1.2008 Репутация: нет Всего: нет |
Мде... т.е. проблема в том, как линукс обрабатывает перл, а не в коде. Странно. Возможно, нужно что-то где-то добавить в коде... хз, как это решить.
|
|||
|
||||
Logo |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 694 Регистрация: 22.7.2008 Репутация: 3 Всего: 10 |
У меня нормальный вывод. Ubuntu 9.10.
Проверь, не закрался ли символ возврата каретки \r в строки. Скорее всего в файле виндовый перевод строки \r\n и символ \r остается. [offtop] Правильно
|
|||
|
||||
NuINu |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 131 Регистрация: 19.7.2008 Репутация: 5 Всего: 6 |
какая дикость, как язык поворачивается так сказать ))), помимо того что это просто не грамотно, еще так грешить на линукс )), который здесь совершенно не причем. к гадалке не ходи это проблема в \r и в том что chomp убирает только \n решалась бы банально $/ = "\r\n"; если бы вы при это еще из stdin ничего не читали но при вашем варианте у вас получается ввод файлов в двух разных стандартах окончания строки, перл к такому слабо приспособлен. посему простой регэксп избавит от проблем. while($row = <PROGFILE>) { chomp($row); $row =~ s/\r//; кстати если бы вы выводили данные в файл а не на терминал результат был бы иным, попробуйте. ) |
|||
|
||||
StargazerV |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 14.1.2008 Репутация: нет Всего: нет |
Да, с \r я бы сам не дошел.
Большое спасибо, очень помогло! ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |