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

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

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

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    Вроде того?
    perl -e "for(1..5) {print $/ unless $_ % 1; print 'X ' x 2}"
     
    _________________________
  2. GenTao

    GenTao New Member

    Joined:
    10 Oct 2009
    Messages:
    123
    Likes Received:
    2
    Reputations:
    -3
    Оп,работает...а почему мой не работает не пойму.Всё же правильно вроде.

    ЗЫ: А что такое print $/ unless $_ % 1; ?
     
  3. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    Да это я что-то не то сделал, "unless $_ % 1;" можно убрать. Просто делает перевод строки каждую итерацию.
     
    _________________________
  4. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Code:
    perl -le "print 'X ' x 2 for 1..5"
    
     
  5. GenTao

    GenTao New Member

    Joined:
    10 Oct 2009
    Messages:
    123
    Likes Received:
    2
    Reputations:
    -3
    Бле...или я тупой,или не понимаю,почему у тебя работает наоборот...разве так можно ?... как это вообще работает ?!

    perl -e "(for 1..5) { print 'X ' x 2 }" это я ещё понимаю...print оператор в теле цикла for...
     
    #1265 GenTao, 3 Nov 2009
    Last edited: 3 Nov 2009
  6. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    В перле можно :) Вместо кода
    Code:
    for (1..5) { print 'X ' x 2 }
    
    можно писать
    Code:
    print 'X ' x 2 for 1..5;
    
    Такую вещь можно провернуть и с while, if, unless, until, foreach. Непривычно, конечно, для новичков
     
    #1266 krypt3r, 4 Nov 2009
    Last edited: 4 Nov 2009
  7. gisTy

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

    Joined:
    24 May 2008
    Messages:
    432
    Likes Received:
    160
    Reputations:
    27
    ну да, а можно print 'X'x10 :D
     
  8. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    gisTy, читайте выше, что требовалось
     
  9. Vlad&slav

    Vlad&slav Member

    Joined:
    1 Jan 2009
    Messages:
    207
    Likes Received:
    41
    Reputations:
    9
    у нас 3 файла в одном в столбик одни слова в другом в столбик другие, надо для каждого слова из первого дописать через звёздочку каждое слово из второго и всё получившееся записать в третий фаил

    #!/usr/bin/perl
    my $a = '1,txt'; # c тем к чему приписываем
    my $b = '2.txt'; # c тем что приписываем
    my $w = 'end.txt'; # куда всё запишится

    open(log,>>$w);
    while($a)
    {
    print log .....;
    }
    close(log);

    я перл не знаю )
     
  10. GenTao

    GenTao New Member

    Joined:
    10 Oct 2009
    Messages:
    123
    Likes Received:
    2
    Reputations:
    -3
    Как соединиться с сервером (google.ru,80 например) без использования сокетов ? Геморрно писать это по памяти ) Через ООП можно как-то,но я пока не понимаю,как юзать...пример всё равно нужен(.
     
  11. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    #!/usr/bin/perl
    use LWP::Simple;
    $content = get("http://google.ru/");
    die "Couldn't get it!" unless defined $content;
    print $content;
     
  12. GenTao

    GenTao New Member

    Joined:
    10 Oct 2009
    Messages:
    123
    Likes Received:
    2
    Reputations:
    -3
    Кул...респект Пашке.А LWP::Simple - это пакет или модуль ? Извини за глупый вопрос. И есть ли где-то описания модулей на русском ?
     
  13. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    http://www.opennet.ru/base/dev/perl_lwp.txt.html
     
  14. GenTao

    GenTao New Member

    Joined:
    10 Oct 2009
    Messages:
    123
    Likes Received:
    2
    Reputations:
    -3
    А как принять пользовательский ввод от пользователя с консоли,чтобы в метод get() подставлялась переменная с переданным значением ?

    Например,есть тот же код:

    PHP:

    #!/usr/bin/perl

    use LWP::Simple;

    $content get("http://google.ru");

    print 
    $content;

    system("PAUSE");

     
  15. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    #!/usr/bin/perl
    use LWP::Simple;
    print "Enter URL:\n";
    $choice = <STDIN>;
    chomp $choice;
    $content = get($choice);
    die "Couldn't get it!" unless defined $content;
    print $content;
     
  16. eLWAux

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

    Joined:
    15 Jun 2008
    Messages:
    860
    Likes Received:
    616
    Reputations:
    211
    PHP:
    chomp($choice = <>);
     
    1 person likes this.
  17. GenTao

    GenTao New Member

    Joined:
    10 Oct 2009
    Messages:
    123
    Likes Received:
    2
    Reputations:
    -3
    Пасип большое,Pashkela:)
     
  18. GenTao

    GenTao New Member

    Joined:
    10 Oct 2009
    Messages:
    123
    Likes Received:
    2
    Reputations:
    -3
    Такая проблема:

    Есть,к примеру,4 функции,вычисляющие сумму,разность,деление и вычитание от двух аргументов.Объявил все функции в модуле.Как теперь получить к ним доступ из пакета (а также переменным в каждой функции) ? Нужен рабочий пример.Вместо реальных функции можно использовать гипотетические - (sum,del и т.д.).
    Если я объявляю,скажем,переменную(обычную) в модуле,скажем,KE.pl,а в исполняемом скрипте использую директиву use,то :: можно не использовать,а сразу использовать переменную как лексическую(как будто бы модуля и вовсе нет...).А когда же тогда использовать :: ?
     
  19. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    http://www.intuit.ru/department/pl/perl/class/free/13/
     
    _________________________
  20. GenTao

    GenTao New Member

    Joined:
    10 Oct 2009
    Messages:
    123
    Likes Received:
    2
    Reputations:
    -3
    Создал модуль W.pm:

    PHP:
    package S;

    sub pr {

    my ($x,$y) = @_;
    $z $x*$y;
    return 
    $z;

    }

    1;
    Затем - фаил w.pl:

    PHP:

    use W;

    $obj S->pr(5,9);
    print 
    $obj;

    Вернуло 0.Почему ?
     
Thread Status:
Not open for further replies.