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

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

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

    snet New Member

    Joined:
    19 Dec 2010
    Messages:
    61
    Likes Received:
    2
    Reputations:
    0
    Решил учить перл, сразу наткнулся на некоторые проблемы.
    PHP:
    snet@bt:/usr/binperl -w
    open
    (FO"+>> /home/snet/qwe.txt");
    seek(FO,0,1);
    $str=<FO>;
    @
    arr=<FO>;
    print 
    $str,"\n";
    foreach 
    my $ar (@arr){
    print 
    "\n",$arr,"\n";
    }
    Use 
    of uninitialized value $str in print at line 5.

    Что я делаю неправильно? что не так с переменной стр?
     
    #1781 snet, 19 Jan 2011
    Last edited: 19 Jan 2011
  2. Fepsis

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

    Joined:
    17 Sep 2008
    Messages:
    791
    Likes Received:
    391
    Reputations:
    72
    snet, точку вместо запятой поставь...
     
  3. snet

    snet New Member

    Joined:
    19 Dec 2010
    Messages:
    61
    Likes Received:
    2
    Reputations:
    0
    есть в перле такая функция (аналогичная php:explode();), которая выводит все значения элементов одинарного массива в одну строку, поставив каждому разделитель? Например как в php:
    PHP:
    $massiv=array("Квантильярд","квинтильйон","демиарт","раз два"3);
    echo 
    explode(" | "$massiv);
    #выведет "Квантильярд | квинтильйон | демиарт | раз два | 3"
     
  4. dpe_x

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

    Joined:
    8 Sep 2010
    Messages:
    155
    Likes Received:
    35
    Reputations:
    14
    Code:
    my @massiv=qw(raz dva tri 4etire);
    foreach (@massiv) {print $_."|";}
     
    1 person likes this.
  5. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    У вас глюки, этим занимается функция implode(). В перле аналогичную операцию делает join
    Code:
    my @massiv = ("Квантильярд","квинтильйон","демиарт","раз два", 3);
    print join " | ", @massiv;
    
     
    1 person likes this.
  6. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,174
    Likes Received:
    1,157
    Reputations:
    202
    В пхп тоже join =) ну и implode() они идентичны.
     
  7. crtqi007

    crtqi007 New Member

    Joined:
    20 Jan 2011
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Всем привет! Может я не втему - но у меня такой вопрос, как можно быстро открыть rar архив или может кто подскажет чем. За нужную помощь - оплата. Аська 647364146.
     
  8. mazaxaka

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

    Joined:
    15 Feb 2008
    Messages:
    268
    Likes Received:
    35
    Reputations:
    0
    Интересует вопрос. как защитить свой перл скрипт.
    скрипт будет компилирован в ехе и запакован.
    думаю может к железу привязать. кто подскажет как ето реализовать в перле?
     
  9. snet

    snet New Member

    Joined:
    19 Dec 2010
    Messages:
    61
    Likes Received:
    2
    Reputations:
    0
    Моя тема вопроса касается многопоточности в perl. Чтобы вам было легче понять что я хочу, я задам его в таком виде:
    Преположим я создал несколько потоков: Васю, Петю и дождь; Вася бежит налево, Петя думает, а дождь вот-вот, спустя несколько секунд, должен закончиться. И вот, когда он закончится, мне нужно, чтобы Петя перестал думать, а Вася побежал направо.
    Кароче как можно реализовать возможность общения потоков друг с другом?
    Вообще мне сейчас надо, чтобы если первый поток закончился, то и прервали свою работу все остальные. Не представляю даже как это можно сделать. Может что-то типа unset(Threads);
     
    #1789 snet, 26 Jan 2011
    Last edited: 26 Jan 2011
  10. SHiNiGaMi

    SHiNiGaMi Banned

    Joined:
    3 Jan 2010
    Messages:
    382
    Likes Received:
    55
    Reputations:
    15
    snet
    попробуй сделать переменную, обзовем ее $is_stopped, значение = false. когда дождь заканчивается, установи ее в true, в других потоках проверяй, если она true, то threads->exit->detach, или как-то так...

    у меня свой вопрос, в общем-то не по Perl, но нужно сделать на Perl. как подключаться к дедику? знаю что 3389 порт, знаю что можно через сокеты... но что слать? гуглил-перегуглил, ниче толкового не видел. В сниффере что-то вообще непонятное... короче I need help!
     
    1 person likes this.
  11. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Глядеть исходники rdesktop и FreeRDP
     
  12. snet

    snet New Member

    Joined:
    19 Dec 2010
    Messages:
    61
    Likes Received:
    2
    Reputations:
    0
    Как скачать gif изображение через http, используя только стандартные модули, никаких image magic'ов которые надо скачивать.
    p.s. скачать не проблема, но задача сделать без них. Но если не существует других вариантов, то буду рад и этому.
    p.s. не могу найти, дайте хоть направление, ++ если поможете конечно.
     
    #1792 snet, 2 Feb 2011
    Last edited: 2 Feb 2011
  13. Fepsis

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

    Joined:
    17 Sep 2008
    Messages:
    791
    Likes Received:
    391
    Reputations:
    72
    Стандартные модули чего именно..?! ActivePerl или чего-то другого..?!

    LWP::UserAgent или сокеты в твоём понимании стандартные модули..?!


    UPD:

    Активперла нет под рукой, но должно работать...

    Code:
    #!/usr/bin/perl 
    
    use LWP::UserAgent;
    
    
    my $ua = LWP::UserAgent->new;
    $ua->agent("Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.19) Gecko/2010031422 Firefox/3.0.19");
    
    
    my $gif_url = 'http://www.livegif.ru/Gallery/PRIRODA/RASTENIA/FLOWER34.GIF';
    
    
    my $gif = $ua->get($gif_url)->content();
    
    
    	open(OUT, '> myGif.gif');
    	binmode OUT;
    	print OUT $gif;
    	close(OUT);
     
    #1793 Fepsis, 2 Feb 2011
    Last edited: 2 Feb 2011
    1 person likes this.
  14. snet

    snet New Member

    Joined:
    19 Dec 2010
    Messages:
    61
    Likes Received:
    2
    Reputations:
    0
    не cpan
    я не там искал, не думал что можно это сделать lwp или сокетами.
    Спасибо за направление, дальше я сам погуглю.

    -------------------добавлено-------------------

    и за пример.
     
    #1794 snet, 2 Feb 2011
    Last edited: 2 Feb 2011
  15. mazaxaka

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

    Joined:
    15 Feb 2008
    Messages:
    268
    Likes Received:
    35
    Reputations:
    0
    взял для работы с wmi ,Win32::OLE , он оказывается не работает с потоками. хоть и код Win32::OLE вынесен из потоков все равно выдает ошибку. подскажите как решить проблему. или модуль для работы wmi и потоками
     
  16. dpe_x

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

    Joined:
    8 Sep 2010
    Messages:
    155
    Likes Received:
    35
    Reputations:
    14
    двигай в сторону fork()
     
  17. small007

    small007 Banned

    Joined:
    13 Jan 2010
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    loveplanet

    всем привет)
    Ребят, пишу простенький однопоточный спамер под лавпленет для себя.
    Логинится ок, а вот сообщение не отправлят, хотя по запросам должен.
    В чем косяк?

    Code:
    		use LWP::UserAgent;
       use HTTP::Cookies;
       use strict;
    
       
     my $browser=LWP::UserAgent->new;
     $browser->cookie_jar( HTTP::Cookies->new);
     my $response=$browser->post('http://loveplanet.ru/a-logon/', [
                              "a" => 'logon',
    						  "back" => "",
    						  "login" => '',
    						"login" => 'LOGIN',
    						  "password" => "PASS",
    						  "VAnketaId" => "0",
    						  "RedirectBack" => '/my/reg.phtml',
    						 ])->as_string;
    		
     $response=$browser->post('http://wap.loveplanet.ru/a-message/',[
    							"a" => 'message',
    							"d" => '1',
    							"login" => "sega4015",
    							"message" => "hello",
    							"Submit" => "%D0%9E%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D1%82%D1%8C",
    						])->as_string;
    
     open (XX,">sgds.html"); print XX $response;						
    
     
  18. dpe_x

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

    Joined:
    8 Sep 2010
    Messages:
    155
    Likes Received:
    35
    Reputations:
    14
    как ты это узнал ?

    плюс юзер-агент у тебя не обьявлен, типа

    $browser->agent("Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.19) Gecko/2010031422 Firefox/3.0.19");
     
    #1798 dpe_x, 10 Feb 2011
    Last edited: 10 Feb 2011
  19. axe89

    axe89 Banned

    Joined:
    18 Aug 2008
    Messages:
    135
    Likes Received:
    46
    Reputations:
    -6
    Парни кому не лень можете написать скриптик просмотр баланса в sape.ru
    по списку логин;пасс
     
  20. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,174
    Likes Received:
    1,157
    Reputations:
    202
    http://api.sape.ru/xmlrpc/
     
Thread Status:
Not open for further replies.