Как использовать ключевое слово "my" в Perl?
Я продолжаю видеть ключевое слово "Мой" перед именами переменных в Примере скриптов Perl в интернете, но я понятия не имею, что это значит. Я пробовал читать страницы руководства и другие сайты в интернете, но мне трудно понять, для чего это, учитывая разницу между тем, как я вижу, что он используется и руководство.
например, используется для получения длины массива в этом сообщении: найти размер массива в Perl
но в инструкции написано:
a my объявляет перечисленные переменные локальными (лексически) для заключительный блок, файл или eval. Если указано более одного значения список должен быть заключен в скобки.
что он делает и как он используется?
3 ответов
my
ограничивает область переменной. Область переменной-это то, где ее можно увидеть. Сокращение объема переменной до того места, где переменная необходима, является фундаментальным аспектом хорошего программирования. Это делает код более читаемым и менее подверженным ошибкам, и в результате множество выгод.
если вы не объявляете переменную с помощью my
глобальная переменная будет создана. Этого следует избегать. Используя use strict;
говорит Perl, что вы хотите быть запрещено неявно создавать глобальные переменные, поэтому вы всегда должны использовать use strict;
(и use warnings;
) в ваших программах.
связанные чтения: зачем использовать use strict;
и use warnings;
?
краткое описание: my
создает новую переменную, local
временно изменяет значение переменной
в приведенном ниже примере$:: a ссылается на $a в "глобальном" пространстве имен.
$a = 3.14159;
{
my $a = 3;
print "In block, $a = $a\n";
print "In block, $::a = $::a\n";
}
print "Outside block, $a = $a\n";
print "Outside block, $::a = $::a\n";
# This outputs
In block, $a = 3
In block, $::a = 3.14159
Outside block, $a = 3.14159
Outside block, $::a = 3.14159
ie,local
временно изменяет значение переменной, но только в пределах области, в которой она существует.
источник:http://www.perlmonks.org/?node_id=94007
обновление
о разнице между our
и my
см.
(спасибо ThisSuitIsBlackNot).
частные переменные через my () - первичная документация my
.
в Примере размера массива, который вы упомянули, он не используется для поиска размера массива. Он используется для создания новой переменной для хранения размера массива.