| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Системное программирование > Как распечатать одну строку из файла? |
| Автор: Дмитрий Волк 3.5.2004, 16:56 |
| В данный момент что бы распечатать очередную строку из файла я исспользую код: print ($temp = <DESCRIPTOR>); Можно ли сделать это в одну операцию? P.S.: Пытался <DESCRIPTOR>; но печатает весь файл |
| Автор: korob2001 3.5.2004, 20:36 | ||||
Видиш ли функция print всегда возвращает список и принимает тоже список. Соответственно оператор <> вызывается в списковом контексте, именно поэтому мы и получаем весь файл. Потому нам нужно явно указать что мы читаем файл в скалярном контексте. Вот здесь нам и приходит на помощь фукция scalar(). Скобки можно опустить, как тебе удобней. Вот пример:
удачи. |
| Автор: Дмитрий Волк 3.5.2004, 22:37 |
| ОГРОМНОЕ спасибо! |
| Автор: ElectricalStorm 6.5.2004, 16:03 | ||||
- чепуха .... вот посмотрите что будет
|
| Автор: korob2001 6.5.2004, 17:37 | ||||||
Обоснуй.
И что ты этим хотел сказать? После запуска программа ожидает ввода, ввожу несколько строк, в результате получаю те строки которые вводил. |
| Автор: ElectricalStorm 11.5.2004, 19:38 |
| #script.pl while (<>) { print <>; last; } запусти perl script.pl text |
| Автор: korob2001 12.5.2004, 12:18 | ||
Да я знаю, что произойдёт при таком вызове. Программа выведет на стандартное устройство вывода содержимое файла text, если файлов задать несколько, то они все, как один, будут выведены на стандартное устройство вывода. Только я что-то не пойму, к чему это? |