Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Оператор безусловного перехода goto





Perl поддерживает оператор безусловного перехода goto, который является идентичным такому же оператору языка программирования С. Ниже приведен пример использования оператора goto для вывода чисел от 1 до 10:

$i = 1; loop: print $i++, ' '; if ($i <=10) { goto loop; }

Генерация динамических выражений с помощью функции eval

 

Поскольку Perl является интерпретируемым языком, ваши скрипты могут использовать Perl для того, чтобы генерировать код <налету>, то есть динамически, во время исполнения скрипта. Именно так работает отладчик Perl (который сам является Perl-программой с именем Perldb.PL). Проектируя скрипты, вы можете использовать такой динамический код для создания динамических переменных изменили даже построения специальных подпрограмм. Perl оценивает динамические выражения, используя функцию eval. В следующем примере создается динамическая инструкция путем присвоения переменной в качестве значения текста, который, собственно, и содержит требуемую инструкцию языка Perl. Дальнейшие инструкции используют функцию eval для того, чтобы выполнить эту инструкцию:

$perl_statement = 'print "Hello, world\n";'; eval $perl_statement; # выведет Hello, world $i = 1001; $varname = '$i'; print eval $varname; # выведет значение $i

Примечание: Использование скриптом функции eval таит в себе опасности, в особенности, если скрипт передает функции eval данные, полученные от пользователя. Используя функцию eval, скрипт может выполнить произвольную команду языка Perl, включая даже системные команды. Это дает возможность пользователю контролировать программу, что может быть особенно рискованным для сетей Internet и Web.

 

Подпрограммы

 

Как и все структурированные языки программирования, Perl поддерживает подпрограммы. Подпрограмма может быть определена с помощью ключевого слова sub, как показано ниже:

sub demo_sub { print "demo_sub called\n"; } &demo_sub; # вызов подпрограммы

В данном случае инструкции образуют подпрограмму, названную demo_sub. Для вызова подпрограммы скрипт помещает знак амперсанда (&) перед именем подпрограммы. При вызове подпрограммы в языке Perl скобки могут быть опущены. Вы можете разместить подпрограмму где угодно в пределах исходного кода скрипта, потому что Perl проанализирует весь исходный текст перед тем, как начать выполнение скрипта. Можно объявить подпрограмму в исходном коде сразу после первого использования подпрограммы (forward reference). Подпрограммы могут иметь аргументы и возвращать значения. Следующий фрагмент кода содержит подпрограмму с именем show_value, которая выводит значение, полученное подпрограммой в качестве параметра:

sub show_value { print 'The value id ', $_[0]; } &show_value(1001);

Формально подпрограмма языка Perl не объявляет переменных для хранения аргументов. Вместо этого в подпрограмму передается переменная типа массив с именем @_, которая содержит значения параметров. В свою очередь, подпрограмма получает доступ к значениям аргументов, используя следующие обозначения для элементов массива: $_[0], $_[1], и т. д. Однако такой способ передачи параметров может ухудшать читаемость кода, и поэтому большинство подпрограмм используют копирование аргументов в локальные переменные. Аналогично предыдущему примеру, следующая подпрограмма show_fwo_values выводит значения двух параметров:

sub show_two_values { print 'Первый параметр ', $_[0], "\n"; print 'Второй параметр ', $_[0], "\n"; } &show_two_values(1001, 2002);

Наконец, следующая функция show_all_values выводит значения всех параметров, которые она получает. Функция использует массив для определения числа параметром:

sub show_all_values { for ($i = 0; $i < @_; $i++) { print 'Parametr ', $i, ' is ', $_[$i], "\n"; } } & show_all_values(1001,2002,3003,4004);

Как было сказано, подпрограммы Perl могут возвращать значения. Для этого используется инструкция return. Perl не требует обязательного использования инструкции return. Если подпрограмма не содержит инструкцию return,то в качестве возвращаемого значения будет взято последнее оцененное выражение. В следующем примере складываются два параметра и возвращается результат:

sub add_values { return $_[0] + $_[1]; } print 'The result is: ', &add_values(1001,2002);






Date: 2016-07-25; view: 380; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.005 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию