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

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

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

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

    Joined:
    8 Apr 2008
    Messages:
    60
    Likes Received:
    0
    Reputations:
    0
    Помогите пожалуйста.

    Здравствуйте. Передо мной стоит задача - произвести замену в тексте следующим образом:
    Есть текст с хтмл кодом. Нужно взять текст между всеми тегами <b> и </b>, проделать с ним ряд операций, а затем результаты вставить обратно соответственно. К примеру, было так:
    <b>A</b>...big code...<b>B</b>
    а нужно, чтобы получилось так:
    <b>A1</b>...big code...<b>B1</b>
    Подскажите, как цикл организовать? То есть чтобы скрипт обработал значение между первыми <b> и </b>, заменил на результат преобразований и приступил к обработке следующего участка с <b> и </b>.
    Сделать одну такую замену у меня прекрасно получается, а вот сделать другую автоматом - нет! Не догоняю, как организоать цикл, чтбы скрипт обработал один и тот же участок 1 раз :confused: . Помогите, пожалуйста
     
    #801 GAVVVR, 2 Dec 2008
    Last edited: 26 Jan 2009
  2. [dei]

    [dei] Active Member

    Joined:
    24 Nov 2008
    Messages:
    171
    Likes Received:
    112
    Reputations:
    5
    Code:
    #!/usr/bin/perl -w
    $text = '<b>A</b>...big code...<b>B</b>...big code...<b>C</b>...big code...<b>D</b>...big code...<b>E</b>...big code...<b>F</b>';
    $newtext = $text;
    
    while($text =~ /<b>(.*?)<\/b>/g) {
    	$str = $1;
    	#всякие действия
    	$str .= '1';
    	################
    	$newtext =~ s/$1/$str/;
    }
    
    print $newtext;
    
     
    1 person likes this.
  3. OnArs

    OnArs Banned

    Joined:
    1 Aug 2008
    Messages:
    211
    Likes Received:
    13
    Reputations:
    1
    Мужики! Всем привет!

    Я скачал Active Perl и не могу разобраться, пытался проинсталить свой leecher.pl
    используя команду install.

    Делаю первый раз, может быть есть что-то лучше чем Active Perl? Посоветуйте пожалуйста.

    Заранее благодарен!
     
  4. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    Зачем скрипт инсталлировать? Просто запусти его типа
    perl leecher.pl
     
    _________________________
  5. D1mka

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

    Joined:
    2 Jan 2008
    Messages:
    123
    Likes Received:
    14
    Reputations:
    2
    http://www.cgi-scripts.info/perl/perlw32.shtml
    так все делал?
     
  6. OnArs

    OnArs Banned

    Joined:
    1 Aug 2008
    Messages:
    211
    Likes Received:
    13
    Reputations:
    1
    Запустил скрипт! Большое спасибо - буду теперь кывыряться :)
     
  7. $p01nt

    $p01nt Elder - Старейшина

    Joined:
    19 Feb 2008
    Messages:
    116
    Likes Received:
    20
    Reputations:
    1
    Всем привет! Как поделить масив на две части? (равные, почти равные) Как на три?
    Пробую вот так:
    #@all - массив
    $np=$#all/2; @one=$all[0..$np];@two=$all[$np..$#all];
     
  8. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    Как вариант вот так:
    Code:
    @one = @two = ();
    @array = (1..10);
    for(0..$#array) {
     $_ < $#array/2 ? (push(@one,$array[$_])) : (push(@two,$array[$_]));
    }
    
     
    _________________________
    1 person likes this.
  9. Digimortal

    Digimortal Banned

    Joined:
    22 Aug 2006
    Messages:
    471
    Likes Received:
    248
    Reputations:
    189
    Ну и зачем каждый раз в цикле делать эту проверку?
     
  10. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    Ну и зачем писать этот комментарий? Лучше бы написал свое более качественное решение.
     
    _________________________
    2 people like this.
  11. Roba

    Roba Banned

    Joined:
    24 Oct 2007
    Messages:
    237
    Likes Received:
    299
    Reputations:
    165
    Code:
    for(1..$#a/2+1) { push (@b, shift @a); }
     
    #811 Roba, 6 Dec 2008
    Last edited: 6 Dec 2008
  12. Digimortal

    Digimortal Banned

    Joined:
    22 Aug 2006
    Messages:
    471
    Likes Received:
    248
    Reputations:
    189
    >> Ну и зачем писать этот комментарий? Лучше бы написал свое более качественное решение.

    Это не комментарий, это вопрос. )
    Мое "решение" для $p01nt'a выглядело бы так: "А не почитать ли тебе учебник по языку на досуге?"
     
  13. GAVVVR

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

    Joined:
    8 Apr 2008
    Messages:
    60
    Likes Received:
    0
    Reputations:
    0
    ВОт вопрос может не по теме, но как запустить на нормальном платном хостинге написанный скрипт, чтобы он работал постоянно? То есть, если я его на компе запущу - то он будет работать, а как это сделать на хостинге?
     
  14. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    http://coding.derkeiler.com/Archive/Perl/perl.beginners/2006-12/msg00755.html
     
    #814 Pashkela, 9 Dec 2008
    Last edited: 9 Dec 2008
  15. [dei]

    [dei] Active Member

    Joined:
    24 Nov 2008
    Messages:
    171
    Likes Received:
    112
    Reputations:
    5
    screen или cron.
     
  16. biophreak

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

    Joined:
    3 Aug 2007
    Messages:
    348
    Likes Received:
    63
    Reputations:
    15
    Не обязательно....иногда достаточно просто запустить perl script.pl params &
     
  17. GAVVVR

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

    Joined:
    8 Apr 2008
    Messages:
    60
    Likes Received:
    0
    Reputations:
    0
    Просто запустить не получится - перезагружается сервер и опять мне вручную пускать.
    cron - вариант понравился. У меня стоит панель ISP Manager, но я думаю - это не имеет значегия... Что написать в поле "Команда"? То есть предположим скрипт лежит в www/script.pl. Как прописать команду в cron, чтобы он запустился?
     
  18. biophreak

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

    Joined:
    3 Aug 2007
    Messages:
    348
    Likes Received:
    63
    Reputations:
    15
    Есть доступ к /etc/rcN.d ?
     
  19. GAVVVR

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

    Joined:
    8 Apr 2008
    Messages:
    60
    Likes Received:
    0
    Reputations:
    0
    rcN.d в папке etc нету
     
  20. biophreak

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

    Joined:
    3 Aug 2007
    Messages:
    348
    Likes Received:
    63
    Reputations:
    15
    N - номер ранлевела...учи матчасть...grep /etc/inittab | grep default
     
Thread Status:
Not open for further replies.