| « Поставить закладку » « Сделать стартовой » | |||
|
|||
|
Подпрограммы
Подпрограммой (процедурой) называется кусок программного кода, созданный для реализации конкретной задачи. Они дают возможность избегать повторного набора одних и тех же операторов. Вот к примеру: $i = 5+6; print "Результат $i "; $i = 10+3; print "Результат $i "; $i = 6+1; print "Результат $i ";Результат, как можно уже догадаться выглядит так: Результат 11 Результат 13 Результат 7Как вы видите здесь, повторяются практически все операции, и меняются только слагаемые. Её можно уменьшить, применяя подпрограммы, но для начала посмотрим, как они определяются. Синтаксис: sub имя_подрограммы() #Если вашей подпрограмме не передаются параметры.
{ --БЛОК-- };
sub имя_подрограммы(тип переменных)
{ --БЛОК-- };
Здесь под словом 'тип переменных' понимается тип переменных, служащих для передачи данных подпрограмме. Хотя данные можно и не передавать, тогда 'тип переменных' можно упустить.
Одним важным примечанием является то, что вы можете определять подпрограммы перед главной программой, но вы можете писать процедуры и после программы предварительно указав вначале её описание, то есть тоже самое, но без 'блока'. Пример: sub AddingProc ( $$)
{
$i = $_[1] + $_[0];
print " Результат $i
"
};
AddingProc(5,6);
AddingProc(10,3);
AddingProc(1,6);
Причем, как можно заметить, параметры программе передаются в массиве @_, где $_[0] и $_[1] являются его элементами. Здесь также присутствует описание передаваемых параметров, в данном случае это два скаляра, но могут и быть другие описания, например:
sub TestProc( @$ )
{ print $_[3]; }
TestProc(("Test","Hello", "simply"),"scalar ");
Результат:
scalar Ну здесь всё понятно, но если мы заделаем так: sub TestProc( @$ )
{ print $_[3]; }
TestProc(("Test","Hello", "simply","array"),"scalar ");
То получим слово 'array', а поэтому если же вы будите пользоваться таким способом передачи данных в процедуру, тогда ставьте вперёд данные, размер которых известен, а только потом массивы, размер которых изменяется.
Можно так же передавать параметры через переменные, так как переменные описанные в главной программе считаются локальными, то есть значение этой переменной распространяется на все используемые подпрограммы. Так же предусмотрено использование не локальных, а переменных доступных только внутри блока. Это можно устроить с помощью функции my(список переменных), обратите внимание на то, что если у вас существуют локальные переменные с такими же именами, то они будут игнорироваться. Приведем такой пример: sub TestProc()
{
my($var);
print "$var";
}
$var = 10;
TestProc();
Результата здесь ни какого не будет, переменная $var в подпрограмме это не $var в главной программе.
Рубрика: Perl для наничанющих
Вышел MySQL 5.1.30, первый стабильный рели....
После публикации 29 тестовых версий анонсирован первый стабильный релиз MySQL 5.1, пригодный для промышленной эксплуатации и обеспечивающий увеличение производительности для "тяжелых" SQL запросов, по сравнению с MySQL 5.0, примерно на 15-20%. Главные новшества появившиеся в MySQL 5.1:
Подробнее... |
Рубрика: MySQL
| Добавлено: 28.11.2008
Тестирование параллельных программ.
Тестирование параллельного программного обеспечения представляет собой более сложную задачу по сравнению с тестированием последовательной программы. Программист должен знать о подводных камнях при тестировании параллельного кода, имеющихся методологиях и инструментарии.
Подробнее... |
Рубрика: Тестирование
| Добавлено: 28.11.2008
Архитектура AMD64 (EM64T).
Аннотация. В статье кратко рассматривается архитектура AMD64 компании AMD и ее реализация EM64T компании Intel. Описаны особенности архитектуры, ее возможности, достоинства и недостатки.
Подробнее... |
Рубрика: Архитектура AMD
| Добавлено: 27.11.2008
Остальные статьи: |
Цитата дня (все,добавить):
|
Realcoding.NET
© 2003-2008 |
Контакты |
Реклама на сайте
|