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

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

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

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

    Joined:
    30 Dec 2004
    Messages:
    187
    Likes Received:
    33
    Reputations:
    3
    print "$1.$2.$3.$4\n";

    а так короче
    Code:
    if ('inet addr:127.0.0.1  Mask:255.0.0.0' =~ m/addr\:(.*?) /){
                print "$1\n";}
      
     
  2. nuxster

    nuxster New Member

    Joined:
    12 Jan 2011
    Messages:
    58
    Likes Received:
    0
    Reputations:
    0
    С регуляркой вроде понятно, а вот с перименными $1,$2 ... не совсем. Поясните пожалуйста или киньте ссылкой.
     
  3. mironich

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

    Joined:
    27 Feb 2011
    Messages:
    733
    Likes Received:
    73
    Reputations:
    19
    Это переменные в которые помещаются группы в рег. выражении, группы это то что в скобках.
     
  4. nuxster

    nuxster New Member

    Joined:
    12 Jan 2011
    Messages:
    58
    Likes Received:
    0
    Reputations:
    0
    Благодарю, понял!
     
  5. gidropon

    gidropon Banned

    Joined:
    25 Sep 2011
    Messages:
    81
    Likes Received:
    15
    Reputations:
    15
    Подскажите пожалуйста,с чего начать в изучении Perl и нету каких ни будь статей на тему регулярных выражений?Я с этим языком сталкиваюсь в первый раз,поэтому нужны понятные статейки для начинающих.
     
  6. mironich

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

    Joined:
    27 Feb 2011
    Messages:
    733
    Likes Received:
    73
    Reputations:
    19
    Книга "perl за 24 часа".
     
  7. gidropon

    gidropon Banned

    Joined:
    25 Sep 2011
    Messages:
    81
    Likes Received:
    15
    Reputations:
    15
    Спасибо,теперь буду изучать:)
     
  8. totenkopf

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

    Joined:
    19 Jul 2010
    Messages:
    92
    Likes Received:
    64
    Reputations:
    19
    Стыдно признаться, но очень туго у меня с регулярными выражениями.
    Помогите составить выражение для проверки в строке более 3 пробелов (в любом месте строки как разделитель между словами).
    Чтобы было так:
    "this is test" = ок
    "this is test test" = fail
    "this[Более 1 пробела]is[Более 1 пробела]test" = ok
    Был бы очень признателен. А если с обьяснением, то вообще было бы прекрасно.
    perl.
     
  9. kroŧ

    kroŧ Member

    Joined:
    19 May 2010
    Messages:
    129
    Likes Received:
    33
    Reputations:
    8
    totenkopf
    \s это пробельные символы
    + означает любое количество
    \w буквы + любое количество
     
    1 person likes this.
  10. CTO

    CTO Member

    Joined:
    9 Sep 2011
    Messages:
    75
    Likes Received:
    7
    Reputations:
    0
  11. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    скажите, почему это не срабатывает?

    PHP:
    perl -MMIME::Base64 -'eval { decode_base64("d2hpbGUoMSl7IHByaW50IDE7IH0=")} '
    поддержка base64 в перле есть. версия 5.8.9
    без base64 eval работает нормально
    decode_base64 вроде возвращает строку
     
  12. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    Потому что кто-то влепил фигурные скобочки
     
    _________________________
  13. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    действительно
    но почему тогда все примеры в мане с такими скобками?
    http://perldoc.perl.org/functions/eval.html

    и вот это работает:
    PHP:
    perl -'eval{while(1){print 1}}'
     
    #2033 Дикс, 9 Oct 2012
    Last edited: 9 Oct 2012
  14. kroŧ

    kroŧ Member

    Joined:
    19 May 2010
    Messages:
    129
    Likes Received:
    33
    Reputations:
    8
    Дикс
    eval{ -Выполняет код внутри блока, не принимает строку
    decode_base64 -возвращает строку
    eval( принимает код(строку) внутри скобок либо из переменной $_
    Code:
    sub base{
    return 'print '."@_";
    }
    &base('1');eval();#не работает
    eval(&base('2'));#работает
    $_=&base('3');eval();#работает
    eval{&base('4')};#не работает так как выполняет код внутри блока не принимает строку из &base
    eval{eval(&base('5'))};#eval выполнит код eval(&base(
     
    1 person likes this.
  15. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    спасибо, теперь понятно
     
  16. fobia_smog

    fobia_smog New Member

    Joined:
    31 May 2010
    Messages:
    11
    Likes Received:
    0
    Reputations:
    0
    Ребят, подскажите: хочу поставить модуль для перла, но он не ставится по причине того, что нет NMAKE. Нашёл у себя на компе файлики nmake.exe, но они выдают ошибку u1064 MAKEFILE not found...
    у меня win7 x64 стоят vs2008 и vs2010 и winsdk.
     
  17. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    пытаюсь запустить пример на сокетах, который должен скачать веб-страницу
    у меня и на сервере все виснет на строке "my $iaddr = inet_aton($host);"
    что не так?

    PHP:
    use strict;
    use 
    warnings;
    use 
    Socket;

    my $host "www.perl.ru";
    my $port "80";

    socket(SOCKPF_INETSOCK_STREAMgetprotobyname('tcp'));

    my $iaddr inet_aton($host);

    my $paddr sockaddr_in($port$iaddr);

    connect(SOCK$paddr);
    send (SOCK"GET / HTTP/1.0\n\n"0);

    my @data=<SOCK>;

    close(SOCK);

    print @
    data;

     
  18. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    Ничего не виснет, другое дело домен не ресолвится этот
     
    _________________________
  19. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    действительно
    а почему не резолвится google.ru?
    что не так со скриптом? может есть более универсальные примеры на сокетах?
    хочу обойтись без UserAgent
     
  20. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    google.ru ресолвится. Вопрос к окружению в котором скрипт работает
     
    _________________________
Thread Status:
Not open for further replies.