перевод PERL to PHP

Тема в разделе "Другие языки", создана пользователем cremnet, 15 май 2009.

Статус темы:
Закрыта.
Модераторы: Цукер
  1. cremnet

    cremnet Создатель

    Регистр.:
    1 дек 2008
    Сообщения:
    13
    Симпатии:
    1
    Вобщем столкнулся с проблемой перевода PERL в PHP есть рабочий код на перл я его в PHP перевожу. Проблема что с PERL вообще никогда не сталкивался и смотрю на него как баран на новые ворота. Вроде чтото понятно а всеравно никак не въеду. Вобщем надыбал полезных ссылок самая полезная оказалась http://www.antigreen.org/vadim/ProgLanguag...n/perl2php.html но там не все что мне нужно знать. КОНКРЕТНЫЙ ВОПРОС:

    Кака это понимать?
    Код:
    open_doc1: {
          &init_vars();
          if ( ($status=&init_io(@_)) ne "ok") {
             last;
          }
          if ( ($status=&init()) ne "ok") {
             &close_document();
             last;
          }
          return "ok";
       }
    я немного поясню вопрос ---> open_doc1 : { ... } <--- Это что???
     
  2. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    590
    Это функция.
    Или вопрос не в этом?
     
  3. cremnet

    cremnet Создатель

    Регистр.:
    1 дек 2008
    Сообщения:
    13
    Симпатии:
    1
    эта функция? хм... она определена в другой функции и негде не вызыватеся... вообще сложно мне как-то понять как пердаются переменные в функциии и возврщаются от туда
    Код:
        sub _open_document{
           local($status)="";
           open_doc1: {
          &init_vars();
          if ( ($status=&init_io(@_)) ne "ok") {
             last;
          }
          if ( ($status=&init()) ne "ok") {
             &close_document();
             last;
          }
          return "ok";
       }
            }
            $status;
        }
    эта функция анонимная?
    результат этой функции передаетс куда?

    Добавлено через 48 минут
    Мне тут подсказывают что это метка
    Я тут немного полистал google --- perl + метка ....
    так вот... в моем случае open_doc1 используется один раз и потом нигде не вызывается. Значит ли это что внутренний код этой метки не выполнятеся? а если выполняется смысл было ставить эту метку?
     
  4. tirrex

    tirrex

    Регистр.:
    9 ноя 2008
    Сообщения:
    213
    Симпатии:
    60
    это так называемый блок кода - в данном случае с меткой
    подобен циклу но выполняется 1 раз
    часто исползуется для формирования конструкции switch, которая как известно в perl отсутствует
     
  5. verissimo

    verissimo

    Регистр.:
    26 сен 2006
    Сообщения:
    438
    Симпатии:
    139
    open_doc1 : это метка, где-ниже в коде должно быть обращение к это метке типа

    next open_doc1;
     
Статус темы:
Закрыта.