![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
Gooos |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 19.5.2006 Репутация: нет Всего: нет |
Скрипт состоит из двух файлов admin.pl и comments.pl, оба они работают с папкой /data, где находятся текстовые файлы с комментариями.
Как правильно написать скрипт счётчика строк в .txt файле (counter.pl), что-бы он не конфликтовал с уже существующими скриптами admin.pl и comments.pl При этом скрипт по вызову должен посчитать строки в определённом .txt файле и вывести результат на страницу через SSI. Конечный результат работы скрипта должен быть такой: [ комментариев 15 ] Есть вот такой скрипт: #!/usr/bin/perl open(FILE, "file.txt"); @DATA=<FILE>; close (FILE); $count = @DATA; print "$count"; Как написать строку открытия файла, если имена запрошенных файлов будут различны - open(FILE, "$file.txt"); ??? Можно ли разместить скрипт прямо с txt. файлами в папке /data, что-бы не прописывать 'opendir' - открытие /data? И как правильно вызвать скрипт через SSI? <!--#include virtual="/cgi-bin/comment/data/counter.pl?file=faile_name"--> -??? P.S: я не програмист ![]() |
|||
|
||||
DiverD |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 225 Регистрация: 14.9.2005 Где: Белорусь Репутация: 1 Всего: 2 |
Как написать строку открытия файла, если имена запрошенных файлов будут различны -
загнать в цикл foreach и поочередно открывать. @list_file = qw(/usr/www/1.txt /usr/www/2.txt); foreach(@list_file) { open(FILE,"$_") or die "$!"; .... } Можно ли разместить скрипт прямо с txt. файлами в папке /data, что-бы не прописывать 'opendir' - открытие /data? можна итак, но не обязатьлено opendir, проста можна прописать пути к файлам если у тебя они не меняються. --------------------
[ FreeBSD & pERL p0WER eVERY dAY ] |
|||
|
||||
Gooos |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 19.5.2006 Репутация: нет Всего: нет |
diverd, я несовсем точно описал суть проблемы.
Через ssi надо вызвать скрипт, что-бы он посчитал кол-во строк в одном определённом .txt файле и вывел результат на страницу. Будет несколько вызовов с одной страницы, но к разным .txt (т.е. кол-во комментариев к разным статьям - заголовок статьи и кол-во комм., заголовок статьи_2 и кол-во комм. к ней, и т.д.) #!/usr/bin/perl use strict; use warnings; my $filename = "$id.txt"; open(FILE, "<", "/pub/home/allegro7/cgi-bin/comment/data/" . $filename) or die "Could't open file $filename. $!"; my @data = <FILE>; close(FILE); print scalar(@data); Такой вариант будет работать? И как правильно вызвать через ssi, может в скрипте надо чего указать? Я вызывал так <!--#include virtual="/cgi-bin/comment/counter.pl?id=conv_smile"--> ... Вот результат на странице: [an error occurred while processing this directive] Запись в файле log_error: [Sun May 21 15:06:08 2006] [error] [client 84.17.27.189] Premature end of script headers: /pub/home/allegro7/cgi-bin/comment/counter.pl [Sun May 21 15:06:08 2006] [error] [client 84.17.27.189] unable to include "/cgi-bin/comment/counter.pl?id=conv_smile" in parsed file /pub/home/allegro7/htdocs/index_test.html ![]() |
|||
|
||||
nitr |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2543 Регистрация: 10.2.2006 Где: Россия :) Репутация: 37 Всего: 84 |
open(FILE, "<". " но лучше по-другому ;)
open(FILE, "< /pub/home/allegro7/cgi-bin/comment/data/$filename") |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |