| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Системное программирование > Нужна помощь --- array |
| Автор: junior 23.1.2005, 14:55 | ||
| Привет! Помогите, пожалуйста, исправить ошибки в программе. Программа должна делать следующее: 1. Инициализировать массив с 3 названиями фильмов. 2. Показывать список массива юзеру. 3. Спрашивать юзера индекс фильма (movie array index), который нужно удалить. Если invalid input, то просить повторить ввод с правильным значением. Если valid input, значит удалить фильм. 4. Спрашивать юзера ввести новые названия в список ( одно название в строке), предупредив юзера разделять каждое название нажатием enter. 5. Спрашивать юзера хочет ли он получить список в reverse order. 6. Если да, output in reverse order. Если нет - forward. Вот что у меня получилось. (смотрите ниже) Пункт 3 работает, если можно так выразится, однобоко. Т.е. переходит на 4 пункт только при введенной 1. Далее, при "успешно" введенной 1 в пункте 3, начинаю вводить новые значения. На винде, почему-то, не работает cntr+z, на freeBSD cntr+d позволяет остановить ввод новых значений. Можно как-то по-другому решить эту проблему? Что-то у меня написано с ошибками. Помогите разобраться, пожалуйста! Спасибо!
|
| Автор: korob2001 23.1.2005, 17:13 | ||
Вот рабочий пример:
Удачи. |
| Автор: Гость_Junior 26.1.2005, 04:20 | ||
| Спасибо korob2001!!! У меня в итоге вот что получилось, с твоей помощью:
Вроде бы все работает, только при запуске программы, после добавления новых строк, выдает warning: Use of uninitialized value in pattern match (m//) at ./array.pl line 41, <STDIN> line 3. но после этого продолжает работать. Вот output программы: 0: Hero 1: Snatch 2: Zatoichi Please enter the index of the movie you want to delete: 0 Snatch Zatoichi Please enter movies you want to add to the list, one per line. Use ctrl/D to termnate the input: asd asdf Use of uninitialized value in pattern match (m//) at ./array.pl line 41, <STDIN> line 3. To print the movie list in reverse order, press Y y 0: Zatoichi 1: Snatch 2: asdf 3: asd Для меня, эта ошибка пока не критична, просто интересно узнать, что не так. Еще раз спасибо за помощь!!! |
| Автор: korob2001 26.1.2005, 06:08 | ||||
Ошибка здесь:
В условии цикла. Попробуй так:
|