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

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

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

    nikitos2401 New Member

    Joined:
    21 Jun 2009
    Messages:
    18
    Likes Received:
    0
    Reputations:
    0
    вот есть код в файле
    Code:
    sub TopMenu($)
    {
    #верхнее меню
    my ($dbh)= @_;
    my @menu=();
    
    $stroka="SELECT * FROM categories WHERE cat_place='2' AND cat_show='1' ORDER BY cat_datetime DESC";
    $sth=$dbh->prepare($stroka);
    $sth->execute;
    while (@row=$sth->fetchrow_array)
    {
    $cat_name=MyDB::Replace_for_Show($row[1]);
    $cat_name_menu="<a href='$scriptout?action=cat_article&cat_id=$row[0]'>$cat_name</a>";
    my %str=(CAT_NAME => $cat_name_menu);
    push (@menu, \%str);
    }
    return @menu;
    }
    
    потом далее он почему то несколько раз выводится
    Code:
    @menu=TopMenu($dbh);
    $tmp->param(TOPMENU => \@menu);
    
    как мне в этот код засунуть еще это:
    что бы выводилось вместе контентом

    Code:
    "$ENV{DOCUMENT_ROOT}//SAPE.pm" =~ /^(.+)$/;
    require $1;
    my $sape = new SAPE::Client(
    	user    => '',
    	host    => '<ИМЯ_ХОСТА>',  # необязательно, по умолчанию: $ENV{HTTP_HOST}
    	charset => 'windows-1251', # необязательно, по умолчанию: windows-1251
    );
    print $sape->get_links;
    
    сапу не могу настроить
     
  2. roflzi

    roflzi New Member

    Joined:
    16 Apr 2010
    Messages:
    42
    Likes Received:
    0
    Reputations:
    0
    а где собственно вывод? если вывод в массиве @menu, то примерно так:


    Code:
    require $ENV{DOCUMENT_ROOT}."/SAPE.pm";
    my $sape = new SAPE::Client(
    	user    => '',
    	host    => '<ИМЯ_ХОСТА>',  # необязательно, по умолчанию: $ENV{HTTP_HOST}
    	charset => 'windows-1251', # необязательно, по умолчанию: windows-1251
    );
    
    @menu=TopMenu($dbh);
    push(@menu, $sape->get_links); 
    
    $tmp->param(TOPMENU => \@menu);
    
     
  3. Apathy

    Apathy New Member

    Joined:
    25 Aug 2011
    Messages:
    41
    Likes Received:
    0
    Reputations:
    0
    есть ли какие либо видеокурсы по перл и стоит ли их практиковать, так же не подскажите как его стоит учить:?(имею небольшой опыт программирования на с++) учу по книге перл за 24 часа, дошел до регулярок
     
  4. vernite akk=

    vernite akk= New Member

    Joined:
    18 May 2011
    Messages:
    73
    Likes Received:
    2
    Reputations:
    0
    Учи дальше не пожлееш, см по этой книге учу интересный язык и функциональный...
     
  5. Apathy

    Apathy New Member

    Joined:
    25 Aug 2011
    Messages:
    41
    Likes Received:
    0
    Reputations:
    0
    вопрос по 1 задаче:
    задача:
    Постарайтесь составить шаблон соответствующий стандартному шаблону времени.
    Шаблон должен пропустить: 12:00am, 5:00pm, 8:30AM;
    Не должен пропустить: 3:00,99:00am,3:0pm
    написал такой скрипт
    Code:
    #!user/bin/perl -w  
    @foo=qw(5:00pm 8:30AM 3:00 2:60am 3:0pm 99:00am 12:00am); 
     @a=grep /1{0,1}\d:[0-5]\d[pm|am|AM|PM]/,@foo  ;  
    print @a; 
    вывод такой:
    C:\perl>perl time.pl
    5:00pm8:30AM99:00am12:00am
    почему попадает 99:00?
     
  6. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,509
    Likes Received:
    389
    Reputations:
    101
    Попробуйте такой вариант
    Code:
    @a = grep /^[0-2]?\d:[0-5]\d(?:am|pm|AM|PM)$/, @foo;
    
    Недостатки тоже есть, например, пропускаются строки типа 27:59am.
    ЗЫ. По регуляркам найдите книгу Фридла
     
  7. Apathy

    Apathy New Member

    Joined:
    25 Aug 2011
    Messages:
    41
    Likes Received:
    0
    Reputations:
    0
    в итоге получилось так


    #!user/bin/perl -w
    @foo=qw(5:00pm 8:30AM 3:00 2:60am 3:0pm 99:00am 12:00am);
    @a=grep /(?<![2-9])\d:[0-5][0-9](?:pm|am)/i,@foo ;
    print @a;
     
  8. mazaxaka

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

    Joined:
    15 Feb 2008
    Messages:
    424
    Likes Received:
    45
    Reputations:
    0
    помогите с авторизацией на фейсбуке
    чтото не получается залогинится выдает ошибку

    вот код.

    Code:
    my $resp = $ua->get("http://www.facebook.com/")->as_string;
      
       my ($lts) = $resp =~ /name="lsd" value="(.+?)" autocomplete/;
           $resp = $ua->post("https://www.facebook.com/login.php?login_attempt=1",
                                [
                                 "charset_test" => "%E2%82%AC%2C%C2%B4%2C%E2%82%AC%2C%C2%B4%2C%E6%B0%B4%2C%D0%94%2C%D0%84",
    "lsd" => $lts,
    "locale" => "ru_RU",
    "email" => $mail,
    "pass" => $pass,
    "default_persistent" => "0",
    "charset_test" => "%E2%82%AC%2C%C2%B4%2C%E2%82%AC%2C%C2%B4%2C%E6%B0%B4%2C%D0%94%2C%D0%84",
    "lsd" => $lts,
    "timezone" => "-120",])->as_string;
    #$resp = $ua->get("")->as_string;
    wf("1.html", $resp);
     
  9. G0lovorez 2033

    G0lovorez 2033 New Member

    Joined:
    21 Apr 2009
    Messages:
    22
    Likes Received:
    1
    Reputations:
    0
    Здравствуйте, в Perl совсем нуб, купил книгу Шварца "Изучаем Perl", упражнение 2, ввести
    perldoc -i -f atan2, выдает ошибку. У меня Windows XP, Active Perl 5.14.2 и Abcsolute Perl 0.9 Beta. Подскажите, что делать?
     
  10. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,937
    Likes Received:
    805
    Reputations:
    224
    А у меня все пашет
     
  11. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,937
    Likes Received:
    805
    Reputations:
    224
    Ну так сделай, чтобы в запросе слался user-agent какого-нибудь современного браузера и попробуй снова.
     
  12. Fepsis

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

    Joined:
    17 Sep 2008
    Messages:
    847
    Likes Received:
    392
    Reputations:
    72
    И charset_test отправляй безо всяких урленкодов, лучше вообще со страницы спарсить...
     
    2 people like this.
  13. mazaxaka

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

    Joined:
    15 Feb 2008
    Messages:
    424
    Likes Received:
    45
    Reputations:
    0
    Code:
    &euro;,&acute;,€,´,水,Д,Є
    перл ругается если без урлекода.

    то Кaimi узерагенты и так последних версий .оперы хрома и лисы
     
  14. erwert

    erwert New Member

    Joined:
    14 Dec 2011
    Messages:
    8
    Likes Received:
    0
    Reputations:
    0
    Куки надо еще подсовывать. urlencode естественно нужно!
     
  15. Fepsis

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

    Joined:
    17 Sep 2008
    Messages:
    847
    Likes Received:
    392
    Reputations:
    72
    Ругается потому что в двойных кавычках отправляешь...

    LWP::UserAgent сам урленкодит данные отправляемые через пост, будет просто двойной урленкод...

    Хотя тут дело то не в этом параметре, и без него логинится я посмотрел...
     
  16. mazaxaka

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

    Joined:
    15 Feb 2008
    Messages:
    424
    Likes Received:
    45
    Reputations:
    0
    куку присваиваются после авторизации.

    подставляю юзерагент с лисы с которой логин проходит норм. не пойму в чем дело
     
    #1916 mazaxaka, 16 Dec 2011
    Last edited: 16 Dec 2011
  17. Fepsis

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

    Joined:
    17 Sep 2008
    Messages:
    847
    Likes Received:
    392
    Reputations:
    72
    mazaxaka, а ты мыло небойсь тоже в двойные кавычки взял..?!

    $mail = "olololo@mail.ru";
     
  18. mazaxaka

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

    Joined:
    15 Feb 2008
    Messages:
    424
    Likes Received:
    45
    Reputations:
    0
    нет мыло у меня вот так
    Code:
    "email" => $mail,
    берется с ак.тхт
    у меня во всех прогах двойные а что?
     
  19. Fepsis

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

    Joined:
    17 Sep 2008
    Messages:
    847
    Likes Received:
    392
    Reputations:
    72
    Code:
    $mail = "olololo@mail.ru";
    print $mail;
    выдаст olololo.ru, так как @mail воспримется как массив, но если ты из тхт берёшь, то врядли проблема в этом, хотя всё-же проверь...
     
  20. mazaxaka

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

    Joined:
    15 Feb 2008
    Messages:
    424
    Likes Received:
    45
    Reputations:
    0
    беру из тхт. поставил даже
    Code:
    "email" => '$mail',
    всеравно таже фигня. не пойму где ошибка.
     
Loading...
Thread Status:
Not open for further replies.