Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как сделать корректный скрипт? Третий скрипт не должен мешать двум др. 
:(
    Опции темы
Gooos
Дата 21.5.2006, 01:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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: я не програмист smile и не уверен в правильности скрипта. Помогите разобраться.
 
PM MAIL   Вверх
DiverD
Дата 21.5.2006, 10:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 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 ]
PM MAIL   Вверх
Gooos
Дата 21.5.2006, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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

smile 
PM MAIL   Вверх
nitr
Дата 21.5.2006, 19:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



open(FILE, "<". " но лучше по-другому ;)

open(FILE, "< /pub/home/allegro7/cgi-bin/comment/data/$filename")  


--------------------
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0683 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.