| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: разработка для Web > нужна функция аналогичная implode из php |
| Автор: Alximik 27.7.2005, 23:23 |
| чтоб сильно вас не напрягать поясню что она делает и для чего мне нужна такяже в perl возможно вам проще будет чтото мне подсказать. и так функция implode в php помогает загрузить текстовый файл. теперь объясняю что я хочу и для чего мне такая функция нужна: есть каталог с файлами в формате *.txt скрипт должен загружать эти файлы. так вот какой функцией это можно сделать? |
| Автор: Anarki 27.7.2005, 23:55 | ||
| join("string_glue", @array); Параметры: строка клей, то бишь разделитель в новой строке, и массив Код:
|
| Автор: korob2001 31.7.2005, 10:53 | ||
Так мож но загружать их сразу в строку.
|
| Автор: Anarki 27.8.2005, 12:38 |
| Написал аналог функции |
| Автор: Usya 27.8.2005, 13:02 | ||||
| korob2001 Если я не путаю, то кажется в коде вместо
надо
иначе получим только одну строчку из файла. А дальше работаем с массивом @full_file. Хотя, если в файле нет разделителей строк, то вполне пойдет и твой вариант |
| Автор: korob2001 27.8.2005, 13:09 |
| Опс... Sorry, перепутал с <>. |
| Автор: Usya 27.8.2005, 14:01 | ||||
| Alximik Возможно и это тебе пригодится Определить файлы в каталоге можно по крайней мере двумя способами: @files=glob('.../dfsd/*.txt'); Иногда я им пользуюсь, однако
Тебе может подойти еще и такой вариант
Раньше я так не делал, но вроде работает. Если что неправильно, думаю меня подправят |
| Автор: korob2001 27.8.2005, 14:48 | ||
Usya - ты где это взял? |
| Автор: Usya 27.8.2005, 15:09 |
| По крайней мере здесь точно есть: http://www.sedinko.ru/perl/doc6.php |
| Автор: korob2001 28.8.2005, 09:34 |
| Вообще-то glob это внутренняя функция. Только до версии 5.6 она использовала внешний процесс, начиная с версии 5.6 она использует внутренний поиск файлов по шаблону. |
| Автор: Usya 29.8.2005, 08:17 | ||||
| Возможно и так. То, что
это я увидел, а на счет
может быть и так, хотя в доках что-то не нашел. Может плохо искал, может не совсем точно перевел. Хотя, по большому счету, какая разница. Это важно когда что-то оптимизируешь, но тогда пробуешь все возможные варианты и потом выбираешь с учетом того, какая версия будет на серваке. |
| Автор: korob2001 29.8.2005, 15:19 | ||||
Да не возможно, а так оно и есть. Перед тем как отвечать, я сам ещё раз открыл книгу "Программирование на Perl" Ларри Уолл, Том Кристиансен, Джон Орвант. Кому же как не создателю языка, лучше знать как работает та или иная функция?
Ну от серваков, где версия Perl ниже 5.6, нужно избавляться, как можно быстрее. |
| Автор: Usya 29.8.2005, 15:38 |
| Теперь Верю! Просто в таких вещах, как ты мне только что сам показал на ошибке в том FAQ-e, можно верить, по большому счету, только первоисточникам!!! |
| Автор: Player47 25.6.2006, 14:19 | ||||
| Здравствуйте, Простите, что поднимаю из пыли старую тему, но вот почему-то не работает ни один из выше приведенных способов. НО: Я нашел очень толковый скрипт:
А вот собственно сам поиск:
Проблемка в том, чтобы все это богатство не просто выводилось на экран, а попадало в массив, с помощью которого потом можно будет работать... Выручите, а? Заранее благодарен. |
| Автор: sharq 27.6.2006, 10:07 |
| Player47, в чем проблема? Вместо print сделай занесение в массив и в функции возвращай этот массив. |
| Автор: Player47 3.7.2006, 17:30 |
| Пишет набор ошибок... Я пока в Perl'e совсем начинающий, что-то не понимаю, почему когда пишутся ошибки, программа закрывается - никакие sleep'ы не помогают. Может, я неправильно в массив записываю? Я вот ей пишу: 1) открой массив (через @) 2) далее через last index number запиши этот самый Find:dir (вместо принта) 3) и вот - программа не снисходит даже до того, чтобы объяснить в чем дело! В общем, я ее принтскрином поймал - так пишет неопознанный массив и все-такое... В чем я дурак?!! |