Перейти из форума на сайт.


Система IP-видеонаблюдения "Линия". Скачать бесплатную демо-версию для 16 камер. НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Perl: Полезные решения

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8

Открыть новую тему     Написать ответ в эту тему

Anton_Y



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Итак.. Предлагаю создать на форуме топик где будут размещатся различные решения различных задач (типа библиотека функций).
Размещать рекомендуется с описанием (что этот код делае), с описанием переменных (желательно use strict)
p.s. размещать не обязательно свои исходники..  
мой скомный вклад.. (что сумел вспомнить:) )
 
  • исключение из массива повторяющихся записей (аналог distinct в sql) Подробнее...
  •  рекурсивный обход папок Подробнее...
  • Исключение из массива данных встречающихся в другом массиве Подробнее...
  • Perl: Перекодировка кириллического текста (win/koi/iso/utf)
  • Приведение регистра текста к нормально виду Подробнее...
  • Замена строки (выражения) в большом количестве файлов на другое Подробнее...
     
     
     
    p.s. для профи конечно это капля в море, но для новичков своеобразный faq. И предлагаю эту тему приклеить, чтобы она всегда была вверху..
    p.p.s. и постите свои фишки сюда..  

    Никаких вопросов! Только решения!

     
    Perl Cookbook on-line http://pleac.sourceforge.net/pleac_perl/index.html  
    DevShed Perl Articles http://www.devshed.com/c/a/Perl/

  • Всего записей: 578 | Зарегистр. 04-09-2002 | Отправлено: 07:12 14-07-2004 | Исправлено: Cheery, 23:38 01-03-2008
    cr4k3r



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Небольшой кусок кода, который может быть будет полезен для обработки вот таких вот файлов:
     
    [BLOCK]
    name=param
    name2=param2
    [INFO]
    #коментарий
    name4=bla bla bla bla bla bla
    name2=va va va vava va va
    и т.п
    Короче файлы конфигов, с поддержкой коментариев и блоков.  

    Код:
     
    sub ReadConfig {
    my $file=shift;
    die "Config not found" unless(-e $file);
    my %config=();# хэш для хранения конфигурации
    my $key; # ключи хэша
    open(CONF,"<",$file) || die "can't open config file: $!";
    while(<CONF>) {
    chomp;
    next if /^#/;
    $key=$1 if /^\[(\w+)\]/;
    if($key) {
             next if /^\[/;# пропускаем строку если идет инициализация блока ([BLOCK])
             my($var,$value)=split(/=/,$_);
     $config{$key}{$var}=$value;
     }
    }
    return %config;
    }
     

     
    Возвращает конструкцию типа - хэш хэшей, с данными работать можно так:
     
    my %config=ReadConfig('./test.txt');
     
    print $config{'INFO'}{'name2'};
     
    и т.п. Не то чтобы сложно, просто некоторые из-за этого прибегают к сторонним модулям....

    Всего записей: 80 | Зарегистр. 27-10-2004 | Отправлено: 18:30 24-05-2005
    BlackSNOW



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Люди я понимаю может и не в тему но все же не подскажите, я поставил PHP5 + Apache, как можно узнать что все работает?
    За ранее спасибо!




    тут предлагают решения, а не задают вопросы, тем более когда тема о Perl! /Cheery/
    ps: создаешь файл в htdocs (или на какую настроил сервер) file.php вида <? phpinfo(); ?> и открываешь его в браузере через запрос вида http://localhost/file.php

    Всего записей: 146 | Зарегистр. 27-02-2005 | Отправлено: 22:39 03-06-2005 | Исправлено: Cheery, 01:24 04-06-2005
    CheRt



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Простенькая функция по поиску N наиболее часто встречающихся слов в тексте. Я ее применяю для генерации ключевых слов...
     

    Код:
     
    sub get_keywords {
     my ($text,$max_keywords)=@_;
     
     $text=~s/<[^<>]+>//gs;
     $text=~s/[\n\r]/ /gs;
     $text=~s/\s{2,}/ /gs;
     $text=~s/\&[a-z0-9]+\;//igs;
     
     $text=~tr/[A-Z]/[a-z]/;
     $text=~tr/[А-Я]/[а-я]/;
     $text=~s/[^\sA-Za-zА-Яа-я]//gs;
     
     my (%words,@words,$el,$c)=();
     
     @words=split(/\s/, $text);
     
     for (my $i=0;$i<@words;$i++) {
      if (length($words[$i])>4) {
       $words{$words[$i]}++;
      }
     }
     
     @words=();
     
     $c=0;
     for ($i=0;$i<$max_keywords;$i++) {
      $el=0;
      foreach (keys %words) {
       if ($el<=$words{$_}) {
        $el=$words{$_};
        $words[$c]=$_;
       }
      }
      $words{$words[$c]}=0;
      $c++;
     }
     
     $text=join(' ', @words);
     
     return $text;
     (%words,@_,$c,$text,$max_keywords,$i,@words)=();
    }
     

     
    вызов соответственно:  

    Код:
     
    $words=get_keywords($text, $max_words);
     

     
    Сразу говорю, она не оптимизирована, так что просто для примера и для идеи !совсем новичкам!...


    ----------
    В огне бода нет и не будет!
    До встречи в СССР 2.0!

    Всего записей: 1118 | Зарегистр. 14-12-2001 | Отправлено: 22:03 17-06-2005
    easyman



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

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

    Код:
     
    sub round {
     my ($value,$power)=@_;
     
     my $tmp;
     $value=int($value*(10**-($power-1)));
     $tmp=$value;
     @_=split(//, $tmp);
     
     $tmp=@_;
     if ($_[$tmp-1]>=5) {
      $value=int($value/10)+1;
     } else {
      $value=int($value/10);
     }
     $value=$value/(10**-$power);
     return $value;
     (@_,$_,$value,$power)=();
    }
     

     
    Не очень грамотная, но в бошку не лезет как ее точнее сделать!
    Пример: round(2.84039011, -4) вернет число 2.8404.
    Соответственно положительно число округлит до сотен, тысяч и т.д.  

     
    все гораздо проще
    my $value = sprintf("%.4f", $value);
     
    в общем
    perldoc -f sprintf

    Всего записей: 483 | Зарегистр. 25-10-2002 | Отправлено: 17:04 20-06-2005
    links

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    все гораздо проще  
    my $value = sprintf("%.4f", $value);

    %.4f не округляет, а обрезает, тоесть из числа 2.84039011 получится 2.8403, а не 2.8404

    Всего записей: 148 | Зарегистр. 11-06-2004 | Отправлено: 18:50 24-06-2005
    arto

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    # perl -e 'printf "%.4f",2.84039011'
    2.8404
    #

    Всего записей: 294 | Зарегистр. 08-02-2003 | Отправлено: 00:44 30-06-2005
    FED



    Чертов Мембер
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Вроде не было тут
    Генерация рандомного набора символов
     

    Код:
    sub GenerateID {
        my ($PwdMax) = (@_);
        $PwdMax = 20 if ($PwdMax < 1);
        my @digit = qw(A B C D E F G H J K L M N P Q R S T U V W Y Z a b c d e f g h j k l m n p q r s t u v w y z 0 1 2 3 4 5 6 7 8 9);
        my $RandomPwd;
        for(1..$PwdMax){$RandomPwd .= $digit[int(rand($#digit))];}
        return ($RandomPwd);
    }

     
    За функцию прописных цифр спасибо!

    Всего записей: 3039 | Зарегистр. 13-08-2001 | Отправлено: 15:51 05-07-2005
    FED



    Чертов Мембер
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    склонение слова по отношению к числительному.
     

    Код:
     
    sub declension
    {
     my $int = shift;
     my $expressions = shift;
     
            my $count = $int % 100;
            if ($count >= 5 && $count <= 20) {
                    $result = $$expressions[2];
            } else {
                    $count = $count % 10;
                    if ($count == 1) {
                            $result = $$expressions[0];
                    } elsif ($count >= 2 && $count <= 4) {
                            $result = $$expressions[1];
                    } else {
                            $result = $$expressions[2];
                    }
            }
            return $result;
    }
     

     
    пример:

    Цитата:
     

    Код:
    my $cnt = 2037;  
    my $tk = declension($cnt,["точка","точки","точек"]);    

    выдаст: "точек"

    Код:
    print "В вашем городе $cnt $tk оплаты";

    результ: В вашем городе 2037 точек оплаты
     

     
     
    ----
    Ищу справедливое решение для склонирования слов, например названий городов на формы "В ____", "Из _____"
    Например:  
    Москва -> в Москве -> из Москвы;  
    Великий новгород -> в Великом новгороде -> из Великого новгорода.

    Всего записей: 3039 | Зарегистр. 13-08-2001 | Отправлено: 20:38 18-08-2005
    Slava0



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    .




    Здесь не ищутся решения.. здесь публикуются "полезные решения". /Cheery/

    Всего записей: 18 | Зарегистр. 26-10-2004 | Отправлено: 00:10 30-08-2005 | Исправлено: Slava0, 02:50 11-09-2005
    kuff

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Вот дернул у себя несколько функций для работы с DBI
    Пользуюсь регулярно.
     

    Код:
     
    # $db  must be defined as DBI object
    ###################
    sub multiSQL{
        my $sql=shift;
        my @str=split(/\n/,$sql);
        chomp @str;
        foreach(@str){
            s/^#.*//;
            s/;(\W)*$/ \n/;
        }
        my $SQL=join(" ",@str);
        @str=split(/\n/,$SQL);
        foreach (@str){
            $db->do($_);
            &Error;
        }
    }
    ######################
    sub GetSQLCount{
        my $sql=shift;
        $sql =~ s/\blimit\b.*$//i;
        $sql=~s/select\b.*?\bfrom/SELECT count(*) AS count FROM/i;
        my $out=$db->prepare($sql);
        $out->execute(@_);
        &Error($sql);
        my $hr = $out->fetchrow_hashref;    
        return $hr->{count};
    }
    ###################
    sub select_one_db{
        my $sql=shift;
        my @args=@_;
        my $out=$db->prepare($sql);
        $out->execute(@args);
        &Error($sql);
        return $out->fetchrow_hashref;
    }
    ###################
    sub insert_db{
        my $table=shift;
        my $h_ref=shift;
        my $funk_ref=shift;
        $sql="SHOW columns FROM $table";
        my $out=$db->prepare($sql);
        $out->execute();
        my %defaults;
        while (my @output=@{$out->fetchrow_arrayref}){
            $defaults{$output[0]}=$output[4];
        }
        my %col=%{$h_ref};
        my @args, @cols;
        @args=();
        @cols=();
        foreach (sort {$a cmp $b} keys %col){
            if ($col{$_} eq ''){
                $col{$_}=$defaults{$_};
            }
            push (@cols,"`$_`");
            unless($funk_ref->{$_}){
                push (@args,$db->quote($col{$_}));
            }else{
                push (@args,$col{$_});
            }
     
        }
        my $last=GetLastInsert($table);
     
        my $sql="INSERT INTO $table  (".join(" , ",@cols).") VALUES (".join(" , ",@args).") ";
        if($db->do($sql)){
            return $db->{'mysql_insertid'};
        }else{
            &Error($sql);
            return 0;
        }
     
     
     
    }
    ###################
    sub update_db{
        my $table=shift;
        my $h_ref=shift;
        my $w_ref=shift;
        $sql="SHOW columns FROM $table";
        my $out=$db->prepare($sql);
        $out->execute();
        my %defaults;
        while (my @output=@{$out->fetchrow_arrayref}){
            $defaults{$output[0]}=$output[4];
        }
        my %col=%{$h_ref};
        my %where=%{$w_ref};
        my @set,@where;
        @set=();
        @where=();
        foreach (sort {$a cmp $b} keys %col){
            #set default
            if ($col{$_} eq ''){
                $col{$_}=$defaults{$_};
            }
            push (@set,"`$_`=".$db->quote($col{$_}));
        }
        foreach (sort {$a cmp $b} keys %where){
            push (@where,"`$_`=".$db->quote($where{$_}));
        }
        my $sql="UPDATE $table SET ".join(" , ",@set)." WHERE ".join(" AND ",@where);  
        my $res=$db->do($sql);
        &Error($sql);
        return $res;
    }
    ###############################
    sub Error{
        my $sql=shift;
    #    print $q->header if $DBI::err;
        die "SQL error: \n $sql \n : ERROR: $DBI::err - $DBI::errstr" if $DBI::err;
    }
    ###################
    sub GetLastInsert{
        my %stolbs;
        my $sql="show table status  like ?";
        my $out=$db->prepare($sql);
        $out->execute($_[0]);
        &Error($sql);
        %stolbs=%{$out->fetchrow_hashref};
        my %newst;
        map{$newst{lc($_)}=$stolbs{$_}}keys %stolbs;
        return $newst{auto_increment};
    }
    #################
     
    #################
    sub IsTableExists{
        my $table=shift;
        my $sql="show table status  like ?";
        my $out=$db->prepare($sql);
        my %stolbs;
        $out->execute($table);
        return 1 if $out->rows;
        return 0;
    }
     
    sub IsColumnExists{
        my $table=shift;
        my $column=shift;
        my %info=ColumnsInfo($table);
        return exists $info{$column};
    }
    sub ColumnsInfo{
        #Field  Type  Null  Key  Default  Extra  Privileges  
        my $table=shift;
        my $sql="SHOW COLUMNS FROM `$table`";
        my $out=$db->prepare($sql);
        $out->execute();
        &Error($sql);
        my %info;
        while(my $output=$out->fetchrow_hashref){
            my $field=$output->{Field};
            delete($output->{Field});  
            $info{$field}=$output;
        }
        return %info;
    }
    sub IsIndexExists{
        my $table=shift;
        my $index=shift;
        my %info=IndexInfo($table);
        if(exists($info{$index})){
            return 1;
        }else{
            return 0;
        }
    }
    sub IndexInfo{
        my $table=shift;
        my $sql="SHOW INDEX FROM `$table`";
        my $out=$db->prepare($sql);
        $out->execute();
        &Error($sql);
        my %info;
        while(my $output=$out->fetchrow_hashref){
            $info{$output->{Key_name}}{$output->{Column_name}}=1;
        }
        return %info;
    }
     

    Всего записей: 2 | Зарегистр. 15-09-2005 | Отправлено: 02:54 11-10-2005
    FED



    Чертов Мембер
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    kuff
    Ничего либа. А можно практические примеры использования различных функций?

    Всего записей: 3039 | Зарегистр. 13-08-2001 | Отправлено: 18:55 24-11-2005
    Oaxa



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    kuff
    Либа действительно ничего, вот только заточена она похоже под MySQL. Под ораклом не проканает, ибо синтаксис немного другой. Но задумка хорошая.

    Всего записей: 123 | Зарегистр. 22-06-2004 | Отправлено: 19:09 24-11-2005 | Исправлено: Oaxa, 19:10 24-11-2005
    kuff

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Ничего либа. А можно практические примеры использования различных функций?

    вот пример использования
    1)
    $dmp= #Засовываешь сюда майскуэльный дамп - восстановит базу
    multiSQL($dmp);
    2) GetSQLCount
    очень полезная функция к примеру есть запрос
    "SELECT * FROM users WHERE country=10"
    функция преобразует запрос в SELECT count(*) as count FROM users WHERE country=10
    и вернет количество записей. Просто избавился от гемороя двойного запроса.
    my $count_users=GetSQLCount("SELECT * FROM users WHERE country=10");
    3) select_one_db
    если тебе нужно получить строку таблицы по айдишке и ты знаешь что эта айдишка уникальная. Возвращает ссылку на хеш, с ключами аналогичными колонкам в запросе
    my $user=select_one_db("SELECT * from user where pk_user=?",123);
    $user- ссылка на хеш с колонками таблицы user
    4) insert_db  
    вставляет запись пример
    my $new_id=insert_db("user",{name=>$name, email=>$email})
    возвращает ключ вставленной записи
    Трабла - невозможно засунуть функцию - так не прокатит: {name=>$name, email=>$email,regdate=>"NOW()"}
    5)  update_db
    аналогична инсерту, только апдейтит данные - третий аргумен ссылка на хеш который подставится в WHERE. Ниче не возвращает
    insert_db("user",{name=>$name, email=>$email},{id=234});
    6) Error - скрипт дохнет если была ошибка. не красиво но эффективно отлавливать ошибки. Съекономил целых три строчки кода.
    7) GetLastInsert возвращает айдишку последней записи которая была вставлена в базу. использую ее в insert_db
     
    Это основные функции. Дальше просто проверка на существования таблиц, колонок индексов. Возвращает true если результат проверки положительный.
    есть еще ColumnsInfo но тут по исходному коду можно разобраться что она делает - просто возвращает инфу о таблице. Иногда использую если нужно проверить тип
    sub is_days_tynyint{
    my %info=ColumnsInfo("user");  
    return($info{days}->{Type}=~/tinyint/i)
    }
     
     

    Всего записей: 2 | Зарегистр. 15-09-2005 | Отправлено: 20:51 24-11-2005
    apatit



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Да, еще бы прокомментированные параметры в подпрограммах - выще было бы проф . А вообще - симпатишно.

    ----------
    http://www.murman.ws/ - Нет очередям в налоговой и на почте! Сэкономим бумагу.

    Всего записей: 1169 | Зарегистр. 09-10-2001 | Отправлено: 08:53 25-11-2005
    NebuSky



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите пожалуйста как сделать на форуме php скрытый текст
    [HIDE=1]Что для этого нужно[/HIDE]




    Читаем шапку темы. Если не можем - обращаемся либо в школу, чтобы научили читать, либо к врачу за очками.
    1) в данной теме вопросы НЕ задают
    2) данная тема касается ТОЛЬКО perl
    /Cheery/

    Всего записей: 17 | Зарегистр. 07-06-2005 | Отправлено: 18:25 12-12-2005 | Исправлено: Cheery, 18:30 12-12-2005
    Anton_Y



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

    Код:
     

    #!/usr/bin/perl -w
    #простейший генератор паролей.

     
    use strict;
    my $len=11, undef my $pass;
     
    for (1..$len)
        {
        $pass.= join '', (0..9, 'A'..'Z', 'a'..'z')[rand 64]
        }
        
    print $pass;  # вот и сам пароль
     


    ----------
    Чаще всего меня можно найти на форуме famaclamosa.com
    и самое главное (!) - Мой хостер - hosteam.ru

    Всего записей: 578 | Зарегистр. 04-09-2002 | Отправлено: 19:23 25-02-2006
    CheRt



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Такая мини-библиотечка записи логов:

    Код:
     
    # Errors logging library. Write logs into file.
    # Using: $result=LogError('Error message');
    # Don't set $! to 'Error message', script will make it self.
    # Template variables:
    # %year% - year,
    # %month% - month,
    # %year_day% - day of year,
    # %month_day% - day of month,
    # %week_day% - day of week,
    # %hour% - hour,
    # %minute% - minute,
    # %second% - second,
    # %message_text% - text of 'Error message',
    # %standart_error_output% - perl error variable ($!),
    # %eol% - new line (\n).
     
    $ErrorLog_File='./ErrorLog.dat';
    $ErrorLog_Semathor='./ErrorLog.sem';
    $ErrorLog_Template='[%year%/%month%/%month_day%, yd=%year_day%, wd=%week_day%, %hour%:%minute%:%second%] %message_text%; $! Returned: %standart_error_output% %eol%';
    $ErrorLog_Result=1;
     
    sub LogError {
     my $text=shift;
     
     &LogError_LockSemathor;
     open(ELF, ">>$ErrorLog_File") || ($ErrorLog_Result=0);
      print ELF LogError_MakeOutput($text);
     close(ELF);
     &LogError_UnlockSemathor;
     
     return $ErrorLog_Result;
     undef $text;
    }
     
    sub LogError_MakeOutput {
     my $text=shift;
     my ($sec,$min,$hour,$month_day,$mon,$year,$week_day,$year_day)=LogError_MakeTime();
     
     $_=$ErrorLog_Template;
        s/%year%/$year/igs;
        s/%month%/$mon/igs;
        s/%year_day%/$year_day/igs;
        s/%month_day%/$month_day/igs;
        s/%week_day%/$week_day/igs;
        s/%hour%/$hour/igs;
        s/%minute%/$min/igs;
        s/%second%/$sec/igs;
        s/%message_text%/$text/igs;
        s/%standart_error_output%/$!/igs;
        s/%eol%/\n/igs;
     
     return $_;
     ($sec,$min,$hour,$month_day,$mon,$year,$week_day,$year_day,$text,$_)=-1;
    }
     
    sub LogError_MakeTime {
     my ($sec,$min,$hour,$month_day,$mon,$year,$week_day,$year_day)=(localtime(time))[0..7];
     
     if ($sec<10) {
      $sec="0$sec";
     }
     
     if ($min<10) {
      $min="0$min";
     }
     
     if ($hour<10) {
      $hour="0$hour";
     }
     
     $year_day++;
     $mon++;
     $year+=1900;
     
     return ($sec,$min,$hour,$month_day,$mon,$year,$week_day,$year_day);
     
     ($sec,$min,$hour,$month_day,$mon,$year,$week_day,$year_day)=-1;
    }
     
    sub LogError_LockSemathor {
     open(LESEM, ">$ErrorLog_Semathor") || ($ErrorLog_Result=0);
     flock(LESEM,2);
    }
     
    sub LogError_UnlockSemathor {
     close(LESEM);
    }
     

     
    Извиняюсь, если напортачил с английским - не скажу, что отлично им владею...
    Стоит ли накидать похожую на простое логирование - запись информации о запросах?!

    ----------
    В огне бода нет и не будет!
    До встречи в СССР 2.0!

    Всего записей: 1118 | Зарегистр. 14-12-2001 | Отправлено: 02:51 08-03-2006 | Исправлено: CheRt, 20:44 09-03-2006
    v1ru5

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всем привет.
    Помагите плиз я установил Дэнвер све нармально и хочуустанвоить форум закинул паку upload куда надо потом в браузере пишу пути где находится файл инстал.php и окрывается окно Выбора програмы хотя Дэнвер поддержывает php почему так?




    за дубль.. за создание вопроса в неподобающем топике /Cheery/
    еще одно нарушение правил и схлопочешь бан

    Всего записей: 4 | Зарегистр. 23-04-2006 | Отправлено: 15:44 23-04-2006 | Исправлено: Cheery, 23:06 23-04-2006
    v1ru5

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всем хай-)
    Помагите плиз...а установил форум IPB захожу на него




    К окулисту, быстро. Если не поможет - выкинуть компьютер совсем, раз не умеем читать /Cheery/
    ps: последнее предупреждение за непрочтение правил. в след. раз будет уже бан

    Всего записей: 4 | Зарегистр. 23-04-2006 | Отправлено: 11:03 25-04-2006 | Исправлено: Cheery, 17:55 25-04-2006
    DJss



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ребята написал модуль для проверки CY Яндекса...
    http://search.cpan.org/~kostya/WWW-Yandex-CY-1.00/lib/WWW/Yandex/CY.pm
     
     
    В будущем ищите новые версии search.cpan.org запрос CY

    Всего записей: 28 | Зарегистр. 17-10-2005 | Отправлено: 22:30 30-05-2006
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 1 2 3 4 5 6 7 8

    Компьютерный форум Ru.Board » Интернет » Web-программирование » Perl: Полезные решения

    Имя:
    Пароль:
    Сообщение

    Для вставки имени, кликните на нем.

    Опции сообщенияДобавить свою подпись
    Подписаться на получение ответов по e-mail
    Добавить тему в личные закладки
    Разрешить смайлики?
    Запретить коды


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.Board
    © Ru.Board 2000-2017

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru