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

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


Сообщения - xmolex

Страницы: 1 2 [3] 4 5
31
Perl / как созать конструкцию ...
« : 16 Мая 2007, 15:09:17 »
В файле с кодом обработки вы можете написать подпрограммы, а можете кусок кода. Писать #!/usr/bin/perl не надо.

Там где вы напишете require, в то место просто вставится код из файла, который вы укажите. Файл не специфичный, обычный кусок кода.

Если у вас в файле 1.pl, всего одна строка print "Hello";,
то там где вы выполните require, выполнитеся код print "Hello";, соответственно выведется Hello.

32
Perl / как созать конструкцию ...
« : 16 Мая 2007, 13:33:49 »
if (если это) {require файл с кодом}, где в файле с кодом определенный метод обработки файлов.

33
Perl / perl и база 1C
« : 16 Мая 2007, 13:28:04 »
Здравствуйте. Собственно вопрос, а есть ли модули позволяющие работать с базой 1С или это не реально? Может кто подскажет где почитать или у кого опыт был?

35
Perl / Проблема с архивирование
« : 13 Января 2007, 15:20:54 »
Не стал создавать новую тему. Хочу спросить. А можно ли таром сжимать директории?
add_files насколько я понял работает только с файлами или я ошибаюсь. В perldoc\'e ничего вразумительного не нашел. Может подскажете? Нужно затаровать директорию.

36
Perl / Проблема с архивирование
« : 13 Января 2007, 15:05:14 »
$tar->write("price.tar",1);  
Не используй 1. Пробуй так  $tar->write("price.tar");  
Не сжимает, но зато хоть как-то в виндовсе работает.

37
Perl / Параметр T и LWP::Simple
« : 23 Ноября 2006, 10:33:28 »
Премного благодарен.

38
Смешно. Я не это просил. Ну ладно, можно и так, спасибо.

39
arto извини, я учу английский, но многое еще не понятно.
Может подскажешь еще?
while ($a =~ m#(.+?)#g) { print "$1: $2\\n"; }
А как сделать, чтобы \\w+, кроме http и prog например? Заранее спасибо за терпение.

40
Perl / Параметр T и LWP::Simple
« : 22 Ноября 2006, 12:37:50 »
Спасибо NeoNox. Все самой решилось. Это сервер приглючило после моих опытов. Перезагрузил apache и все встало на свое место.
Хотелось бы еще спросить. Делаю проверку на наличие этого модуля. Сделал нижеприведенным образом. Криво или можно как-то проще? Просто, если человек не имеет этого модуля хочется чтобы программа нормально дальше работала, а не выводила 500 ошибку. Только хочется, чтобы без модулей, не входящих в стандартную поставку перла, было.


sub http_get
{
  my ($text,$road) = @_; #text - наш текст, который мы проверяем на link, road - путь к корневой директории сайта
  my ($temp, $temp_inc, $flag);
  my $bee_split = chr(128);

  if ($text =~ /(<\\!--\\*\\s*http\\s*-->.+?<\\!--\\*\\s*\\/http\\s*-->)/i)
   {
     foreach $temp (@INC)
      {
        $temp_inc = $temp;
        if ($temp_inc !~ /\\/$/) {$temp_inc .= "/";}
        $temp_inc .= "LWP/Simple.pm";
        if (-f $temp_inc) {$flag = 1;}
      }
     if ($flag != 1)
      {
        my $lng_file = ${\\LNG_FILE}; # LNG_FILE - название файла с русским текстом
        if ($lng_file =~ /^\\//) {$lng_file =~ s!^/!!;}
        my $road_lng = $road; $road_lng .= $lng_file;
        open (LNG, "$road_lng") || warn "don\'t open lng file: $!";
        foreach () {chomp(); $temp .= $_;}
        close(LNG);
        @lng = split(/$bee_split/, $temp);
        &log($lng[3], $road);
        $text =~ s/(<\\!--\\*\\s*http\\s*-->)(.+?)(<\\!--\\*\\s*\\/http\\s*-->)//i;
      }
     else
      {
        use LWP::Simple qw(get);
        while ($text =~ /(<\\!--\\*\\s*http\\s*-->)(.+?)(<\\!--\\*\\s*\\/http\\s*-->)/ig)
         {
           $flag = get("$2");
           $text =~ s/<\\!--\\*\\s*http\\s*-->.+?<\\!--\\*\\s*\\/http\\s*-->/$flag/i;
         }
        $text =~ s/\\n/$bee_split/g;
      }
   }
  return($text);
}

41
Perl / Параметр T и LWP::Simple
« : 21 Ноября 2006, 19:00:38 »
Параметр Т - это #!/usr/bin/perl -wT
Я читал что он не включает домашнюю директорию в окружение. И вот попробовал воспользоваться LWP::Simple, вернее get и получил такое.

42
Perl / Параметр T и LWP::Simple
« : 21 Ноября 2006, 18:23:29 »
Приветсвую. Возможно ли как-то обойти ограничение? LWP::Simple скрипт нормально подгружает, а вот LWP/Simple.pm сам пытается подгрузить IO/Socket.pm и не может. Почему, ведь в @INC прописаны пути D:/usr/lib и D:/usr/site/lib? Может я что-то не понятно спросил? Вы тогда переспросите. Уж очень интересно. Может в @INC нужно полный путь до модуля прописать?

Вот лог сервера:
[Tue Nov 21 18:04:57 2006] [error] [client 127.0.0.1] Can\'t locate IO/Socket.pm in @INC (@INC contains: D:/usr/lib/LWP/Simple.pm D:/usr/site/lib/LWP/Simple.pm) at D:/usr/site/lib/LWP/Simple.pm line 160, line 8.

43
Хм. Может пояснишь почему при ".+?" заработало, а при ".*" работало не правильно?
.* - любой символ повторяется 0 или большее число раз.
.+? - любой символ 1 и более число раз.
Или я что-то не понимаю?

44
Народ помогите. Не стал заводить новую ветку, чтобы не захламлять.
Имеется строка $local_file=\'  Хы, работает.    Хы, работает.  \';

Там где знак (_) значит могут быть пробелы, а могут и не быть.
Нужно найти строки: что-то

$temp = "<--*";
while ($local_file =~ /(<\\!--\\*\\s*?\\w+\\s*?-->)([^$temp]*)(<\\!--\\*\\s*?\\/\\w+\\s*?-->)/ig)
{ print "|$1|$2|$3|
\\n"; }

Но он найти не может, а если
while ($local_file =~ /(<\\!--\\*\\s*?\\w+\\s*?-->)(.*)(<\\!--\\*\\s*?\\/\\w+\\s*?-->)/ig)
{ print "|$1|$2|$3|
\\n"; }
то находит один раз вместо двух. Что не так?

45
А может подскажешь как быть с другими буквами? Например, я использую русскую локаль, как тогда тоже самое сделать с латинницей? Или может подскажешь как можно решить такую задачу:
Есть текст:
"Прокуратура возбудила уголовное дело. Прокуратура  (прокуратураter и набор слов) была на высоте. Если что-то и работает, то прокуратура"
Требуется посчитать сколько раз встречается слово "прокуратура", не вхождения, а именно сколько слов. Я хотел сделать так:
@temp = split(/[!(\\w\\d)]+прокуратура[!(\\w\\d)]+/i, $stroka);
Но такой метод не работает, поэтому я и спрашивал, как работает отрицание в регулярных выражениях. Если кто знает поделитесь.

Страницы: 1 2 [3] 4 5