Автор Тема: Как вызвать подпрограмму несколько раз?  (Прочитано 4803 раз)

0 Пользователей и 1 Гость просматривают эту тему.

  • Гость
Всем привет!

     Есть такая задачка: надо открыть десяток файлов в одной директории, в них поискать и в случае true вывести результат на экран. В противном случае искать в следующем файле. Я знаю, что это можно сделать с помощью foreach, но мне несколько удобнее сделать так:

     &subprog; # вызов

     ##########################################
     sub subprog {
     поиск
     }

     Вопрос: как вызвать &subprog 10 раз, т.е. для каждого файла?

Оффлайн YA

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 597
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Как вызвать подпрограмму несколько раз?
« Ответ #1 : 24 Июля 2002, 22:34:53 »
foreach (@files) {&subprog($_);}
Литературный перевод с русского и английского на Perl. Дорого!

Unregistered

  • Гость
А все-таки?
« Ответ #2 : 25 Июля 2002, 09:54:51 »
YA, спасибо, но этот способ я знаю.
А как все-таки можно решить это с помощью sub subprog?

Оффлайн YA

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 597
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Как вызвать подпрограмму несколько раз?
« Ответ #3 : 25 Июля 2002, 18:07:33 »
???

А я что написал? Твоя подпрограмма будет вызываться сколько надо - для каждого файла.
Литературный перевод с русского и английского на Perl. Дорого!

Unregistered

  • Гость
ОЙ...
« Ответ #4 : 25 Июля 2002, 20:15:52 »
Извини, пьяный наверное был, сразу не врубился. Буду пробовать. А можно как-то указать сколько именно раз ее вызывать, например я знаю, что в директории 10 файлов и я говорю что-то типа "вызвать subprog 10 раз"?

Оффлайн YA

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 597
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Как вызвать подпрограмму несколько раз?
« Ответ #5 : 25 Июля 2002, 22:39:45 »
Если в массиве @files находятся имена этих 10-ти файлов, то она и будет вызвана 10 раз.

Ты бы мануал почитал что ли... или книжку умную...
Литературный перевод с русского и английского на Perl. Дорого!

Оффлайн YYYn

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 38
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Как вызвать подпрограмму несколько раз?
« Ответ #6 : 26 Июля 2002, 02:17:55 »
Цитировать
Если в массиве @files находятся имена этих 10-ти файлов, то она и будет вызвана 10 раз.

Ты бы мануал почитал что ли... или книжку умную...


Я про Фому, а ты про Ерему...
Я спрашиваю, как вызвать подпрограмму 10 раз, а ты мне отвечаешь, как обработать файлы. Ну а если в директории 100000 файлов, а мне надо обработать любые 10? Если subprog будет вызываться 100000 раз сисадмин пошлет меня на...

А книжка имеется, "PERL библиотека программиста" называется, всего 736 страничек... Сойдет??? или поумнее посоветуешь? Там ответа нет.

Может быть это вообще не возможно?

Оффлайн YA

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 597
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Как вызвать подпрограмму несколько раз?
« Ответ #7 : 26 Июля 2002, 09:08:08 »
А ты сам свой вопрос читал?
Цитировать
Вопрос: как вызвать &subprog 10 раз, т.е. для каждого файла?
Я и написал для каждого файла
Цитировать
а мне надо обработать любые 10

Используй
- переменную счетчик или
- foreach (@files[0..9]) {...} или
- foreach (0..9) {...}
и т.п.
Литературный перевод с русского и английского на Perl. Дорого!

Оффлайн YA

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 597
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Как вызвать подпрограмму несколько раз?
« Ответ #8 : 26 Июля 2002, 09:12:38 »
Цитировать
А книжка имеется, "PERL библиотека программиста" называется, всего 736 страничек... Сойдет??? или поумнее посоветуешь?

http://www.books.ru/shop/books/11085 - очень рекомендую.
Или (как минимум) - http://www.books.ru/shop/books/5559
Литературный перевод с русского и английского на Perl. Дорого!

Оффлайн YYYn

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 38
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Как вызвать подпрограмму несколько раз?
« Ответ #9 : 26 Июля 2002, 10:12:28 »
YA, не злись! Я эту книгу купил (после долгих поисков по Библио-глобусам и т.д.) на развале в 2000 году. В то время купить нормальную книгу по Перлу было также трудно, как сейчас купить книгу по правилному распитию водки в Африке. Обложка очень похожа на http://www.books.ru/shop/books/11085 , но вот вместо верблюда там... почему-то баран. Называется "Perl Cookbook", авторы Tom Christiansen, Nathan Torkington, а Ларри Уолл является главным куратором. Издание "Питер" 2000 год (http://www.books.ru/shop/books/3643). За ссылку огромное спасибо! Не знаешь можно-ли ее где-то купить в Москве, желательно подешевле, чем в books.ru, ну и конечно побыстрее?

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28