Нужна помощь с perl.

Тема в разделе "Другие языки", создана пользователем UDAV, 18 апр 2011.

Модераторы: Цукер
  1. UDAV

    UDAV

    Регистр.:
    22 июн 2007
    Сообщения:
    781
    Симпатии:
    153
    Нужна небольшая помощь с perl.
    Имеется сайт на perl, мне нужно его адаптировать под сео.

    На самом сайте
    PHP:
    <title>$title</title>
    <
    meta name="keywords" content="$keywords">
    <
    meta name="description" content="$description">
    Эти переменные берутся из админки, но они общие для всего сайта, а мне нужно прописать для каждой страницы.

    Подскажите как сделать инклюд файла, в котором будут составлены title,keywords в зависимости от страницы?

    В php через switch($_SERVER['REQUEST_URI']){case '/': .. элементарно сделать.. а вот в perl я хз как такое сотворить...
     
  2. ShoxMaster

    ShoxMaster

    Регистр.:
    3 дек 2008
    Сообщения:
    393
    Симпатии:
    150
    PHP:
    $_SERVER["REQUEST_URI"];
    ->
    Код:
    $ENV{"REQUEST_URI"};
    Будет как-то так:
    Код:
    given($ENV{"REQUEST_URI"})
    {
    when('/') {...}
    }
    Короче, тот же switch-case только given-when и с возможностями Perl:D
     
    UDAV нравится это.
  3. modelsonline

    modelsonline Постоялец

    Регистр.:
    18 окт 2010
    Сообщения:
    103
    Симпатии:
    9
    либо use Switch;
     
    UDAV нравится это.
  4. UDAV

    UDAV

    Регистр.:
    22 июн 2007
    Сообщения:
    781
    Симпатии:
    153
    Спасибо, но что-то всеравно не получается, 500 ошибка...
    Как правильно записать:
    PHP:
    given($ENV{"REQUEST_URI"})
    {
    when('/') {
    $title 'Название';
    $page 'Название';
    $map 'Название';
     }
    }
    или так вообще нельзя?
     
  5. ShoxMaster

    ShoxMaster

    Регистр.:
    3 дек 2008
    Сообщения:
    393
    Симпатии:
    150
    Может Perl древний? В любом случае switch-case можно заменить на if-else if
    PHP:
    if($ENV{'REQUEST_URI'eq '/cgi/test.pl')
    {

    if(
    $ENV{'REQUEST_URI'eq '/cgi/test.pl')
    {
        
    $title 'Название'
        
    $page 'Название'
        
    $map 'Название';
    }
    elsif($ENV{'REQUEST_URI'eq '/cgi-bin/test.pl')
    {
        
    $title 'Название1'
        
    $page 'Название1'
        
    $map 'Название1';
    }

    }
     
    UDAV нравится это.
  6. modelsonline

    modelsonline Постоялец

    Регистр.:
    18 окт 2010
    Сообщения:
    103
    Симпатии:
    9
    UDAV поставь strawberry perl и запускай через cmd -> perl script.pl, когда скрипт заработает, переноси на хостинг.
    Привычнее подключить класс Switch, там конструкция аналогична php.

    Но вобще то что ты делаеш обычно выносится в отдельный файл seo.inc, а в самом коде переменные. То есть:
    условие, определяем $root
    подключаем seo (определяем там все как класс или массив)
    выводим $seo[$root]['link'];

    Но правильно это делать в смарти.
     
    UDAV нравится это.