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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запуск всех скриптов Perl кроме самого себя, в многопоточном режиме 
:(
    Опции темы
Suppir
Дата 25.3.2014, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 588
Регистрация: 20.4.2009

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



Добрый день!

В директории 20 скриптов Perl, их нужно последовательно запускать. Я написал скрипт-пускач, который будет запускать остальные скрипты (кроме себя) в многопоточном режиме.

Код

use threads;
use Thread::Queue;

my $q = Thread::Queue->new();

if ($0 =~ /.+\\(.+)/){$myname = $1}

while(<*.pl>){
    $q -> enqueue($_) if $_ ne $myname;
}

my $thread_limit = 2; 

my @thr = map {
    threads->create(sub {
        while (defined (my $item = $q->dequeue_nb())){
            print "$item\n";
            system($item);
        }
    });
} 1..$thread_limit;
$_->join() for @thr;



Проблема в следующем. Все скрипты выдают какую-то информацию в консоль. И сейчас в консоли "пускача" отображается какая-то белиберда - запускаемые скрипты пишут свою информацию внахлест.

Подскажите, можно ли отредактировать пускач таким образом, чтобы он только показывал названия запущенных скриптов и не выводил при этом информацию, которую пишут в консоль эти запускаемые скрипты?

PM MAIL   Вверх
tzirechnoy
Дата 25.3.2014, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1173
Регистрация: 30.1.2009

Репутация: нет
Всего: 16



Можно.
PM MAIL   Вверх
Suppir
Дата 25.3.2014, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 588
Регистрация: 20.4.2009

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



Как? smile
PM MAIL   Вверх
Romikgy
Дата 25.3.2014, 11:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: нет
Всего: 146



переведи вывод в файл 


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Suppir
Дата 25.3.2014, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 588
Регистрация: 20.4.2009

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



STDOUT, что-ли?


Ну, я добавил:
Код

open(STDOUT, ">$0.log");


Теперь вместо консоли пишет в файл. Но мне нужно, чтобы пускач писал в консоли, какие именно скрипты он запустил.

Это сообщение отредактировал(а) Suppir - 25.3.2014, 11:43
PM MAIL   Вверх
Bulat
Дата 25.3.2014, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

Репутация: 5
Всего: 57



Цитата(Suppir @  25.3.2014,  11:42 Найти цитируемый пост)
Но мне нужно, чтобы пускач писал в консоли, какие именно скрипты он запустил.


Код

#!/usr/bin/perl

print $0, "\n";





--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
Suppir
Дата 25.3.2014, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 588
Регистрация: 20.4.2009

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



Куда это прописать?

Менять вывод всех 20 скриптов нет возможности. Нужно именно в пуске все прописать. 
PM MAIL   Вверх
Bulat
Дата 25.3.2014, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

Репутация: 5
Всего: 57



Suppir, считается, что

Код

            print "$item\n";
            system($item);


вот этот print и делает то, что тебе нужно. Но делает ли он это или нет у тебя - не знаю!

Добавлено через 9 минут и 5 секунд
Попробуй закомментировать строку 

Код

system($item);


и посмотри что будет писаться в консоли.


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
Romikgy
Дата 25.3.2014, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: нет
Всего: 146



Код

print "$item\n";
            system($item." > log.txt");


Это сообщение отредактировал(а) Romikgy - 25.3.2014, 12:50


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Suppir
Дата 25.3.2014, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 588
Регистрация: 20.4.2009

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



Romikgy, 

из нескольких потоков не может писать в один log.txt, т.к. "файл заблокирован другим процессом".





Добавлено @ 12:56
Цитата(Bulat @ 25.3.2014,  12:31)
Suppir, считается, что

Код

            print "$item\n";
            system($item);


вот этот print и делает то, что тебе нужно. Но делает ли он это или нет у тебя - не знаю!

Добавлено @ 12:40
Попробуй закомментировать строку 

Код

system($item);


и посмотри что будет писаться в консоли.

Я закомментировал строку и получается следующее:
1) не пишется название запущенных скриптов;
2) выводится в консоль та информация, которую выдают запущенные скрипты.

И мне нужно ровно наоборот - чтобы информация от скриптов (что, что в скриптах прописано через Print) не выводилась в консоль и чтобы отображались названия запущенных скриптов. 


Это сообщение отредактировал(а) Suppir - 25.3.2014, 12:57
PM MAIL   Вверх
Bulat
Дата 25.3.2014, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

Репутация: 5
Всего: 57



Цитата(Suppir @  25.3.2014,  12:54 Найти цитируемый пост)
Я закомментировал строку и получается следующее:
1) не пишется название запущенных скриптов;
2) выводится в консоль та информация, которую выдают запущенные скрипты.


или ты сделал не то, что я тебе написал, или ты врешь!

Код

system($item);


запускает твои скрипты - если ты эту строку закомментировал(а не что-то другое), то у тебя скрипты вообще не должны были бы запускаться!  smile

Добавлено через 1 минуту и 43 секунды
Цитата(Romikgy @  25.3.2014,  12:47 Найти цитируемый пост)
            system($item." > log.txt");


а если 

Код

system($item." > $item.txt");


??


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
Suppir
Дата 25.3.2014, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 588
Регистрация: 20.4.2009

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



Bulat, я закомментировал строки 
Код

#            print "$item\n";
#           system($item." > log.txt");


Сейчас скрипт выглядит так:

Код

use threads;
use Thread::Queue;

my $q = Thread::Queue->new();

if ($0 =~ /.+\\(.+)/){$myname = $1}

while(<*.pl>){
    $q -> enqueue($_) if $_ ne $myname;
}

my $thread_limit = 2; 

my @thr = map {
    threads->create(sub {
        while (defined (my $item = $q->dequeue_nb())){
#            print "$item\n";
#           system($item." > log.txt");
            system($item);
        }
    });
} 1..$thread_limit;
$_->join() for @thr;



Он работает неправильно: в консоль перенаправляется вывод со всех скриптов (вперемешку), а названия запущенных скриптов не отображаются.

Добавлено через 1 минуту
Понятно, что если закомментировать
Код

system($item);

, то ни один скрипт вообще не запустится.

Добавлено через 2 минуты и 58 секунд
Цитата(Bulat @  25.3.2014,  13:00 Найти цитируемый пост)
а если 

код Perl
1:
system($item." > $item.txt");
?? 



Ну, получится 20-лог файлов с именами скриптов. Но дело в том, что и сейчас эти 20 скриптов создают 20-лог файлов с различной информацией. Зачем мне еще что-то писать.

Нужно только запускать параллельно эти 20 скриптов и выводить в консоль, какие скрипты запущены - вот и все. 
PM MAIL   Вверх
Bulat
Дата 25.3.2014, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

Репутация: 5
Всего: 57



Suppir, вообще-то я тебе писал совсем другое, но по закону Мерфи...  smile 

Код

use threads;
use Thread::Queue;
my $q = Thread::Queue->new();
if ($0 =~ /.+\\(.+)/){$myname = $1}
while(<*.pl>){
    $q -> enqueue($_) if $_ ne $myname;
}
my $thread_limit = 2; 
my @thr = map {
    threads->create(sub {
        while (defined (my $item = $q->dequeue_nb())){
            print "$item\n";
#           system($item." > log.txt");
#            system($item);
        }
    });
} 1..$thread_limit;
$_->join() for @thr;


Так можно проверить вывод в консоль названия запускаемых скриптов,

Если оное происходит - значит то, что ты хочешь уже делается! Нужно лишь маленько изменить сам запуск скриптов!  smile 

Это сообщение отредактировал(а) Bulat - 25.3.2014, 13:13


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
Suppir
Дата 25.3.2014, 13:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 588
Регистрация: 20.4.2009

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



Bulat, 

если оставить строчку
Код

print "$item\n";


то в консоль выводятся названия скриптов. Это правильно.

Проблема в другом. Если мы запустим скрипты строчкой

Код

system($item);


то эти скрипты начинают наперебой  писать свою информацию в консоль пускача. То есть запускаемые потоки передают свой STDOUT в консоль пускача. Переделывать все скрипты нет возможности. Нужно отредактировать пускач таким образом, чтобы он отображал только названия запускаемых скриптов и не выводит их STDOUT в свою консоль.
PM MAIL   Вверх
Bulat
Дата 25.3.2014, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

Репутация: 5
Всего: 57



если ось юниксовая, то попробуй

Код

system($item." > /dev/null");


P.S. я больше предпочитаю форки, но вроде как и с тредами должно работать!  smile 


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
Suppir
Дата 25.3.2014, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 588
Регистрация: 20.4.2009

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



Нет, виндовс стоит.


Еще есть такой вариант. Чтобы скрипт пускач запускал скрипты Perl в отдельных окнах. И пусть они там себе в консоль выводят, что хотят. Такой вариант возможен?


PM MAIL   Вверх
Bulat
Дата 25.3.2014, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

Репутация: 5
Всего: 57



Цитата(Suppir @  25.3.2014,  13:32 Найти цитируемый пост)
Нет, виндовс стоит.


Если виндовс, то делай

Код

system($item." > $item.txt");


самое оптимальное решение, которое не принесет за собой другие проблемы!  smile 


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
Suppir
Дата 25.3.2014, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 588
Регистрация: 20.4.2009

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



К сожалению, не оптимальное. Каждый скрипт выдает log-файл. А теперь он еще и создает лишние txt-файлы.

Разве что стирать потом эти файлы в конце работы скрипта...

Добавлено через 3 минуты и 45 секунд
Короче, изменил код на следующий:

Код

use threads;
use Thread::Queue;

my $q = Thread::Queue->new();

if ($0 =~ /.+\\(.+)/){$myname = $1}

while(<*.pl>){
    $q -> enqueue($_) if $_ ne $myname;
}

my $thread_limit = 2; 

my @thr = map {
    threads->create(sub {
        while (defined (my $item = $q->dequeue_nb())){
            print "$item\n";
            system($item." > $item.temp")
        }
    });
} 1..$thread_limit;
$_->join() for @thr;

while(<*.temp>){unlink}


В файлы $item.temp пишется вывод STDOUT скриптов, а в конце скрипта пускач подчищает за собой эти темповые файлы.
PM MAIL   Вверх
Bulat
Дата 25.3.2014, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

Репутация: 5
Всего: 57



Цитата(Suppir @  25.3.2014,  13:42 Найти цитируемый пост)
К сожалению, не оптимальное. Каждый скрипт выдает log-файл. А теперь он еще и создает лишние txt-файлы.

Разве что стирать потом эти файлы в конце работы скрипта... 


Ок. Если придумаешь надежное решение под виндовс по твоим требованиям - меня в соавторы!  smile 


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
Suppir
Дата 25.3.2014, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 588
Регистрация: 20.4.2009

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



Договорились smile
PM MAIL   Вверх
tzirechnoy
Дата 25.3.2014, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1173
Регистрация: 30.1.2009

Репутация: нет
Всего: 16



Цитата
Как?  


Например, 
Код
open(my $LOG, "-|",$item);
while (<$LOG>) { };

PM MAIL   Вверх
Romikgy
Дата 25.3.2014, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: нет
Всего: 146



Код

system($item." > $item.temp && del $item.temp ")



--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
alezzz
Дата 25.3.2014, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


сплю...
**


Профиль
Группа: Участник
Сообщений: 499
Регистрация: 17.8.2009

Репутация: 1
Всего: 14



А почему вывод перенаправляется с созданием нового файла? Может system($item." >> out.temp"), такой вариант не будет под windows блочить файл? А вообще действительно нехватает /dev/null smile

Еще можно вместо system использовать `` (qx//). Тут вывод в консоль не должен попадать.

Это сообщение отредактировал(а) alezzz - 25.3.2014, 19:28
PM MAIL   Вверх
Romikgy
Дата 25.3.2014, 22:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: нет
Всего: 146



Цитата(alezzz @  25.3.2014,  18:18 Найти цитируемый пост)
 /dev/null

linux - /dev/null
windows - null


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
alezzz
Дата 26.3.2014, 00:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


сплю...
**


Профиль
Группа: Участник
Сообщений: 499
Регистрация: 17.8.2009

Репутация: 1
Всего: 14



Цитата(Romikgy @  25.3.2014,  22:30 Найти цитируемый пост)
windows - null

действительно есть, только nul, с одной "l"

Это сообщение отредактировал(а) alezzz - 26.3.2014, 00:05
PM MAIL   Вверх
Suppir
Дата 26.3.2014, 09:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 588
Регистрация: 20.4.2009

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



А может быть кто знает, как изящней вот это написать?

Код

if ($0 =~ /.+\\(.+)/){$myname = $1}


то есть получить имя скрипта без его пути. Например: c:/программы/test.pl - нужно получить "test.pl".
PM MAIL   Вверх
Bulat
Дата 26.3.2014, 09:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

Репутация: 5
Всего: 57



Suppir, сдается мне, что это строчка под юникс писалась!  smile 

А если попробовать исправить вот так:

Код

if ($0 =~ /.+\/(.+)/){$myname = $1}



--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
Suppir
Дата 26.3.2014, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 588
Регистрация: 20.4.2009

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



Да нет, все под Windows написано и работает.

Я думал, может есть какая волшебная переменная для получения названия скрипта без его пути. 
PM MAIL   Вверх
Romikgy
Дата 26.3.2014, 10:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: нет
Всего: 146



Код

use File::Basename;
my $fname = basename($path);




--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
tzirechnoy
Дата 26.3.2014, 10:41 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1173
Регистрация: 30.1.2009

Репутация: нет
Всего: 16



Цитата
А может быть кто знает, как изящней вот это написать?


Никак. Написать это изящно -- невозможно. И не потому, что регэкспы сложные или модулей нет, а потому, что пытаться отфильтровать себя по имени -- это само посебе кривость и плохо сказывается на переносимости. Это в общем мне интуитивно-очевидно, но и так я за пять минут наткнулся на три нюанса: другие слэшы в linux, необходимость под linux  запускать ./subscript.pl по причине отсутствие . в $PATH, привычка запускать perl runner.pl, которая тожэ привела к поломке.

Правильнее -- создать поддиректорию, куда положыть либо сам запускающий скрипт, либо наоборот тех, кого нужно выполнить.
PM MAIL   Вверх
Bulat
Дата 26.3.2014, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

Репутация: 5
Всего: 57



Цитата(Suppir @  26.3.2014,  10:27 Найти цитируемый пост)
Я думал, может есть какая волшебная переменная для получения названия скрипта без его пути.  

у меня на linux $0 - дает как раз название скрипта без пути, как оно работает под виндовс - не знаю, под рукой нету!  smile 


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
arto
Дата 26.3.2014, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



( split "[\\\\/]", $0 )[-1];
PM MAIL ICQ   Вверх
Suppir
Дата 26.3.2014, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 588
Регистрация: 20.4.2009

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



у меня на linux $0 - дает как раз название скрипта без пути, как оно работает под виндовс - не знаю, под рукой нету!  

Windows дает полный путь по $0.

Добавлено через 1 минуту и 28 секунд
 другие слэшы в linux, 

С этими сдешами беда. Я пишу одновременно на c#, perl и AutoIt. Везде приходится по-разному писать smile Хотя c#, вроде, и так, и эдак понимает.

Добавлено через 1 минуту и 47 секунд
arto, 
шутку юмора заценил smile

Добавлено через 3 минуты и 32 секунды
В общем, я попробовал позапускать скрипты в многопоточном режиме. На двухядерном процессоре E7300 преимущество в 1,5 - 2 раза по сравнению с последовательным запуском. Думаю, что на i5 или i7 преимущество будет в 3 - 4 и более раз. 
PM MAIL   Вверх
Страницы: (3) [Все] 1 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


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

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


 




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


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

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