[Perl] Новичкам: задаем вопросы

Discussion in 'PHP' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. anubis666

    anubis666 New Member

    Joined:
    17 Aug 2009
    Messages:
    31
    Likes Received:
    0
    Reputations:
    0
    Как выбрать только первые 2а символа из ip адреса например из 10.33.235.101 ?
    Зарание спасибо!
     
  2. _iks_

    _iks_ Member

    Joined:
    21 Feb 2009
    Messages:
    60
    Likes Received:
    59
    Reputations:
    61

    Code:
    $ip = '105.189.235.101';
    
    $ip =~ /^(\d\d?\d?)\.(\d\d?\d?)/;
    В переменных $1 и $2 будет 105 и 189 соответственно.
     
  3. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    Code:
    $ip = '105.189.235.101';
    ($a,$b) = split(/\./,$ip);
    print $a."-".$b;
    
     
    1 person likes this.
  4. anubis666

    anubis666 New Member

    Joined:
    17 Aug 2009
    Messages:
    31
    Likes Received:
    0
    Reputations:
    0
    Простите в регулярных выражениях я как в дремучем лесу..но меня наверно неправильно поняли,мне надо если ip 10.33.235.101 ,то значение переменной должно быть 10
     
  5. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    Code:
    $ip = '105.189.235.101';
    ($a) = split(/\./,$ip);
    print $a; 
    
     
  6. .Slip

    .Slip Elder - Старейшина

    Joined:
    16 Jan 2006
    Messages:
    1,571
    Likes Received:
    977
    Reputations:
    783
    Подскажите кодеры, можно ли как нибудь укоротить кодес? У меня что то варианты кончились.

    perl -e "$ARGV[0] =~ tr/A-Za-z/a-zA-Z/, print $ARGV[0];" QwErTy

    Ну или так:

    perl -e "$_ = shift, tr/A-Za-z/a-zA-Z/, print;" QwE

    Всё равно не комильфо
     
    #1526 .Slip, 12 Jun 2010
    Last edited: 12 Jun 2010
  7. astrologer

    astrologer Elder - Старейшина

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    Code:
    perl -e "$_ = shift, tr/A-Za-z/a-zA-Z/, print;" QwE
    
    perl -E "$_ = shift, y/A-Za-z/a-zA-Z/, say" QwE
    perl -E "y/A-Za-z/a-zA-Z/, say for shift" QwE
    perl -E "say $_ ^ ' ' x length for shift" QwE
    perl -E "say $_^' 'x length for@ARGV" QwE
     
    1 person likes this.
  8. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    /<item num=(.*?) \/>/g
     
    _________________________
  9. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    use Encode, Luke :)
     
  10. Fepsis

    Fepsis Elder - Старейшина

    Joined:
    17 Sep 2008
    Messages:
    791
    Likes Received:
    391
    Reputations:
    72
    Tigger, если страница в utf-8, то типа так:
    Code:
    use Encode;
    
    $s = 'тут страница, которую парсишь';
    Encode::from_to($s, 'utf-8', 'windows-1251');
     
  11. Fepsis

    Fepsis Elder - Старейшина

    Joined:
    17 Sep 2008
    Messages:
    791
    Likes Received:
    391
    Reputations:
    72
    Такая трабла:
    при написании скриптов с использованием сервиса antigate.com юзаю модуль от Kaimi http://kaimi.ru/2009/05/anticaptcha-perl/
    но вот проблема, на некоторых машинах отказывается работать, мотивируя этим:
    хотя либа IO установлена и последней версии (пробовал переустанавливать)...
    переустановка активперла не помогает.. Тестил на нескольких машинах (ХР, версия активперла на всех последняя)

    С чем может быть связано..?!
     
  12. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    Видимо с тем, что стоит попробовать вместо
    new IO::Socket::INET (...
    написать
    IO::Socket::INET->new(...
     
    _________________________
    1 person likes this.
  13. Fepsis

    Fepsis Elder - Старейшина

    Joined:
    17 Sep 2008
    Messages:
    791
    Likes Received:
    391
    Reputations:
    72
    Так и есть :) Большое спасибо..))
     
  14. anubis666

    anubis666 New Member

    Joined:
    17 Aug 2009
    Messages:
    31
    Likes Received:
    0
    Reputations:
    0
    Здравствуйте,
    можете мне помоч?вот суть проблемы,я пытаюсь вызвать подпрограмму ,название её передается в параметре get запроса.
    пример кода
    HTML:
    my $sub_name=param("sub");
    my $arg=param("arg");
    &$sub_name($arg);
    sub getvideo{
     #Code
    }
    
    
    
    &$sub_name($arg) -> как мне быть с этим ужасом?если прописываю use strict то начинаются ошибки которые ругаются на эту строчку
     
  15. cipa21

    cipa21 Elder - Старейшина

    Joined:
    9 Apr 2009
    Messages:
    548
    Likes Received:
    146
    Reputations:
    30
    Помогите, нужно срочно отпарсить текс с содержимым:
    klerpgh.ru
    qekpgw.ru
    wepigj.ru
    и т.д.
    Вначале каждой строки добавить http://
    Очень нужно! Спасибо
     
  16. slashd

    slashd Elder - Старейшина

    Joined:
    3 Sep 2008
    Messages:
    56
    Likes Received:
    15
    Reputations:
    6
    вот пример работающей программы:
    Code:
    #!/usr/bin/perl
    
    use strict;
    my $sub_name = \&{$ARGV[0]};
    my $arg = "hello";
    &{$sub_name}($arg);
    sub test {
    	print $_[0],"\n";
    }
    
    # perl test.pl test
    hello
    # 
     
  17. anubis666

    anubis666 New Member

    Joined:
    17 Aug 2009
    Messages:
    31
    Likes Received:
    0
    Reputations:
    0
    Что то не получается у меня perl ругается на строчку &{$sub_name}($arg); если что пишу под windows
     
  18. slashd

    slashd Elder - Старейшина

    Joined:
    3 Sep 2008
    Messages:
    56
    Likes Received:
    15
    Reputations:
    6
    хм, какая имено ошибка?
     
  19. anubis666

    anubis666 New Member

    Joined:
    17 Aug 2009
    Messages:
    31
    Likes Received:
    0
    Reputations:
    0
    в вашем скрипте unable to create sub named (хоть и добавляю аргумент к запуску)
    а в моем Can't use string ("getvideo") as a subroutine ref while "strict refs" in use at D:/web/cgi/api.pl line 9
     
    #1539 anubis666, 28 Jun 2010
    Last edited: 28 Jun 2010
  20. roflzi

    roflzi New Member

    Joined:
    16 Apr 2010
    Messages:
    42
    Likes Received:
    0
    Reputations:
    0
    Code:
    {
    no strict 'refs';
    &$subname($argument);
    }
    
    при вызове функции :) если уж используете strict

    но лучше всего это делать так:

    Code:
    use strict;
    
    my $subname   = 'ololo';
    my $subref = \&$subname;
    &$subref("!!!1111");
    
    sub ololo
    {
    print "HEY! $_[0]\n";
    }
    
     
    #1540 roflzi, 2 Jul 2010
    Last edited: 2 Jul 2010
Thread Status:
Not open for further replies.