Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Темы - cr4ck3r

Страницы: [1]
1
Уважаемые коллеги.
Есть задача написания интернет-магазина на perl (под mod_perl). Не очень навороченный проект, но и не совсем простой.
Скажите есть ли на форуме люди готовые взяться за проект и сколько ориентировочно это будет стоить?

работа над проектом предполагается в течении 2-х месяцев.

отзывы можно здесь или в пм.

2
Perl / Контроль шар на Windows
« : 11 Августа 2006, 16:20:12 »
Руководство поставило задачу - контролировать расшаренные ресуры на файл сервере.
То есть требуется писать лог:
когда какой_файл _кто_открыл/скачал/удалил

В интете смотрел программы типа KillWatcher, но они просто несерьезные... хотелось бы реализовать свой вариант сервиса на Perl. проблема заключается в том чтобы отслеживать доступ к файлам... думаю есть какие-то модули облегчающие эту задачу. За сим и обращаюсь. Спасибо.

3
Или просто я что-то очевидное не вижу.
Произвожу посик по файлу, и в нем идут такие вот данные
(здесь привожу 2 строчки из файла)
Цитировать

[01/Jun/2006 15:30:10] Message detected as spam with score: 10.00, threshold 7.00, To: blablablaIV@myserver.ru, Message size: 3159, From: usuiremdxiz@hotmail.com, Subject: раскрутим..Fri, 02 Jun 2006 01:01:12
[30/May/2006 20:00:12] Message detected as spam with score: 9.29, threshold 7.00, To: blablablaAA@myserver.ru, Message size: 5397, From: linda@horafeliz.com, Subject: Срочно перезвони!

Мне нужно выдернуть адрес отправителя (спамера),
я использую такой регэксп:
(привожу кусок скрипта):

open(FILE,"<",$file) || die "can\'t read file $file: $!\\n";
while() {
chomp;
/From:\\s+(.+)\\@(.+)\\.(\\w{0,4})\\,/;
print "$1\\@$2.$3\\n";
}
close(FILE);

и вот что сранно,  строчки файла - почти идентичные, а результат выводимый принтом такой:
для первой строки:
Цитировать

usuiremdxiz@hotmail.com, Subject: раскрутим..Fri

для второй строки:
Цитировать
linda@horafeliz.com


В чем дело? Почему в вывод попадает мусор (файл размером 3,5Mb и в нем мусор проскакивает 5-8 раз...)

Подскажите...

4
Perl / Служба Windows на Perl
« : 07 Июня 2006, 16:09:58 »
Написал службу для windows, использовал PerlSvc для компиляции... Все работает хорошо и прекрасно (инсталиться, деинсталиться)... Если из консоли управления службами (mmc) запускаю ее - то все ок, но если нажимаю:"Остановить", то она не останавливается...
Кто-нибудь сталкивался с такими вещами?

5
Perl / Проблема с hex строкой
« : 02 Апреля 2006, 20:13:53 »
Требуется создать строку типа:
my $foot="\\x00\\x00\\x01\\x00\\x01";
И я ее создаю из строки:
$host=\'test.ru\';
foreach my $sym(split(//,$host)) {
   $temp.=sprintf("%x",ord($sym));
}
в итоге получаю строку содержащую в общем-то то что надо, но при записи в файл (к примеру) эта строка не понимается как шестнадцатеричная...
или...
в общем проблема в сочетании шестадцатеричных строк и обычных?
К примеру упаковав IP адрес через
pack(\'C4\',$ip1,$ip2,$ip3,$ip4) - я получаю нужную мне строку, а вот при попытке тоже самое сделать с обычной строкой (к примеру имя хоста) - получаю фигню... в смысле данные не рассматриваются как hex, а рассматриваются как обычная строка?
Запутанно объясняю - просто уже торможу виимо..
если кто-то понял проблему - подскажите плз...

6
Perl / Net::RawIP для ActivePerl?
« : 24 Марта 2006, 12:58:13 »
Интересует сабж. Есть ли в природе? Или аналоги - позволяющие работать с ip-пакетами на самом низком уровне?

7
Perl / Модуль для работы с почтой
« : 07 Марта 2006, 11:45:02 »
Таких модулей в общем-то полно. Но этот я написал для своих собственных нужд, именно из-за неумения српавится с модулем Net::SMTP... :rolleyes:
Не удите строго - думаю я еще улучшу этот модуль. Сейчас же он предназначен для отправки почтового сообщения с вложением. При этом работает он с модулем Socket, а не IO::Socket, что позволяет работать ему быстрее. Но для спама он не очень годится - в данном виде. Для ускорения надо выделить функцию коннекта к серверу в отдельный элемент, дабы не коннектится каждый раз к серверу для отправки следующего письма. Но это потом, а сейчас - простой и довольно быстрый модуль для отправки почты с аттачем.
Пример работы с модулем:
Цитировать

#!/usr/bin/perl -w
use strict;
use lib qw(.); # если модуль лежит в одной папке со скриптом
use SimpleMail;

my %data=(Host => \'localhost\',
Helo => \'notebook\',
From => \'hider@notebook\',
To => \'user@notebook\',
charset => \'koi8-r\',
Subject => \'Hello!\',
Message => \'Hello! Friend!\',
File => \'arc.tar.gz\',
Type => \'application/octet-stream\',
Debug =>0 # вывод ответов smtp-сервера
);
my $test=send(\\%data);


Исходники

8
Perl / Интервью с Ларри Уоллом
« : 28 Июля 2005, 14:52:24 »
Не сочтите за рекламу - но думаю тут есть люди которым было б интересно ЭТО почитать.
Это интервью с Ларри, когда он приезжал в Москву в апреле этого года. В инете я пока не видел этого дока.

9
Продолжаю заморачиваться тут с этой прогой. С функциями разобрался с помощью ondr, а вот с хэшами что-то никак.

У меня есть функция которая андефит значения ключей, типа так:

sub flushGlobalHashes {
#my $type=uc(shift);
for (keys %DATA::RUTS) {
$DATA::RUTS{$_}=undef unless (/rn|rutid|cn|channel/);
}
}

Но вот хэши могут быть 4 видов (а точнее 4 хэша разных):
%DATA::RAL, %DATA::OFT, %DATA::RUTS, %DATA::CIRC, не хотелось бы писать для каждого из них процедуру, тем более что в приведенной выше порцедуре переменная $type (закоментирована) содержит предикат хэша (OFT,RAL,RUTS и т.д в зависимости от типа данных).
Как мне в данном случае работать с хэшом?
Спасибо.

10
Perl / Вызов функции
« : 21 Июня 2005, 13:05:25 »
У меня есть скрипт script.pl, который использует модуль Module.pm.
В скрипте определяется переменная $type, а модуль содержит несколько функций вида:

sub query_one { }; sub query_two { };

Я из скрипта пытаюсь вызвать функции модуля так:
my $type=\'one\';

my $query=Module::query_$type();

на что мне выдается сообщение о том что функции query_ нет в пакете Module. Что я тут пропустил подскажите? Знаю что где-то встречал такие вопросы - но не нашел где.

11
Perl / File::Operator OO модуль
« : 12 Мая 2005, 10:36:06 »
Вот собсно написал модуль. Выкладываю его здесь не для хвастовства (хвастать-то особо тут нечем), а для того чтобы попросить его потестировать или указать на баги (или ошибки реализации). Этот модуль в дальнейшем планирую использовать для своего движка новостей, поэтому и просьба о том чтобы его потестировать.

Модуль с комментариями в кодировке koi8-r
Модуль с коментариями в кодировке windows-1251

В конце модуля (после __END__) описаны его методы и то зачем он вобшем-то нужен.
Заранее всем спасибо, кто найдет или укажет на ошибки.

12
Помогите разобраться со следующе проблемой.
Я пишу ОО модуль, для работы с файлами. Сейчас написано 3 метода, и они если их вызывать поочереди, странно себя ведут.
Вот какие это методы:

sub FetchRecord {
my $obj=shift;
my $fh=$obj->{\'file\'};
my %param=@_;

while(defined(my $line=<$fh>)) {
        chomp($line);
my($id,@REC)=split(/\\|/,$line);
return \\@REC if($id eq $param{\'-id\'});
}
my @ERR=();
push(@ERR,"record by id $param{\'-id\'} not found");
return \\@ERR;
}

sub FetchLastRecords {
my $obj=shift;
my $fh=$obj->{\'file\'};
my %param=@_;
$param{\'-num\'}=1 unless(exists($param{\'-num\'}));
my @LIST=<$fh>;
$param{\'-num\'}=$param{\'-num\'}>@LIST ? @LIST : $param{\'-num\'};
@LIST=splice(@LIST,-$param{\'-num\'});
return \\@LIST if exists($param{\'-raw\'});
my @LIST_CUT=();
foreach (@LIST) {
chomp;
s/\\|/ /g;
push(@LIST_CUT,$_);
}
return \\@LIST_CUT;
}

sub FetchFileToHash {
my $obj=shift;
my $fh=$obj->{\'file\'};
my %hash=();
while(defined(my $line=<$fh>)) {
        chomp($line);
my($id,@REC)=split(/\\|/,$line);
$hash{$id}=\\@REC;
}
return %hash;
}


Создание объекта происходит так:

sub new {
my $class=shift;
my %arg=@_;
$arg{\'-path\'}="." unless(exists($arg{\'-path\'}));
die "Bad file name" unless(-e "$arg{\'-path\'}/$arg{\'-file\'}");
my $fh;
block($arg{\'-path\'},LOCK_SH);# внутренняя функция пакета (блокировка через файл семафор)
open($fh,"<","$arg{\'-path\'}/$arg{\'-file\'}") || die "Can\'t open file: $!";
my $self={
          file => $fh,
          };
bless($self,$class);
return $self;
}

То есть я таскаю с собой дескриптор файла, который извлекаю в методах. И вот именно в этом проблема. Если я вызываю в скрипте сперва метод FetchFileToHash, а потом остальные, то в оставшихся двух методах почему-то не происходит чтение из дескриптора $fh. Если вызываю сперва FetchRecord, потом FetchFileToHash, а за ним FetchLastRecords, то в последнем методе снова не происходит чтение из дескриптора $fh. Короче - никак не могу отловить здесь ошибку. Пробовал запускать методы без блокировки файлов (думал проблема тут) - но результат тот же. Дескриптор $fh при этом определен во всех методах и имеет одинаковый адрес, но вот почему-то чтение из него возможно только в одном или двух случаях из трех?

13
Perl / Вопрос к мастерам Perl/Tk под Win32
« : 22 Апреля 2005, 10:52:46 »
В общем, потребовалось к программке добавить прогресс бар. И все бы хорошо, но проблема в том что йентот прогресс бар почему-то не хочет обновлятся в режиме реального времени - а просто после выполнения задачи - рисует полосочку. Но уже ПОСЛЕ выполнения. :\\\\.. Как заставить ее отображать реальность - а не прошедшее время?

Для простоты понимания - набросал тестовый скриптик. Тут рисуется пару окошек, и пару кнопок. На кривизну не обращайте внимание - это для примера.


#!perl -w
use Tk;
use Tk::ProgressBar;
use Tk::Toplevel;

my $val=1;
$mw = MainWindow->new();
$mw->geometry( \'250x150\' );
$mw->resizable( 1, 0 );

$mw->Button(-text=>"add",-command=>\\&Add)->pack( -padx=>15, -pady=>15,
  -anchor=>\'se\' );
sub Add {
my $toplevel=$mw->Toplevel();


my $but=$toplevel->Button(-text=>\'Add\')->pack( -padx=>15, -pady=>15,-anchor=>\'se\' );

my $but2=$toplevel->Button( -text=>\'Quit\', -command=>sub{ $toplevel->destroy() } )->pack( -padx=>15, -pady=>15, -anchor=>\'se\' );

my $bar = $toplevel->ProgressBar( -padx=>2, -pady=>2, -borderwidth=>2,-blocks => 18,
 -troughcolor=>\'#BFEFFF\', -colors=>[ 0, \'#104E8B\' ],
 -length=>106,-variable=>\\$val)->pack;
my $bar2 = $toplevel->ProgressBar( -padx=>2, -pady=>2, -borderwidth=>2,-blocks => 18,
 -troughcolor=>\'#BFEFFF\', -colors=>[ 0, \'#104E8B\' ],
 -length=>106,-variable=>\\$val)->pack;
 
$but->configure( -command=>[ \\&fct] );  
}

MainLoop;

sub fct {
  while($val<100) {
  $val++;
  Addz($val);
  }
}

sub Addz {
my $val2=shift;
$val2=5000+$val2;
for(;$val2>1 ; ) {
$val2--;
my $data=localtime()
}

}


Функция Addz - просто несет нагрузку - ничего более (для того чтобы понять что прогресс бар появляется потом а не во время выполнения).
Я пробовал работать с прогрессбаром и через опцию -variable, и через метод
$bar->value($num);
результат один и тот же.
Подскажите плиз как быть?

14
Perl / Сравнить два массива
« : 21 Апреля 2005, 11:00:27 »
Что-то я туплю немного. Подскажите как наиболее эффективно решить такую задачу:

Имеется массив со списком имен файлов. Имеется текстовый файл, также со списком имен файлов. Требуется, из массива удалить имена файлов которые встречаются в текстовом файле, и получить в результате список файлов которые не упоминаются в текстовом файле. Что-то я никак не могу найти нужного решения, а точнее наиболее эффективного и быстрого.

15
Perl / Получение имени процесса по его PID
« : 21 Марта 2005, 15:55:58 »
Решил написать (просто для себя) Диспетчер задач (аля Windows) но для никсов на Perl  c красивым GUI. Как получить PID всех процессов понятно (ls /proc) но вот как получить имена этих процессов? Я не хотел бы использовать ps и парсить ее вывод (считаю не очень красивым решением) - может есть какой-нить модуль для работы с процессами (получение PID, имени и прочих атрибутов) на Perl или вообще встроенные средства самого языка?

Страницы: [1]