Похоже, ваш настоящий вопрос: что такое ключевое слово my
и зачем оно нужно?
my
используется для объявления переменной в локальной области, а также локально для подпрограммы:
#!/usr/bin/perl
use strict;
my $foo = "defined in outer";
print_result ("outer",$foo); # outer: defined in outer
{
# $foo has not yet been defined locally
print_result ("inner",$foo); # inner: defined in outer
my $foo = "defined in inner"; # defining $foo locally
print_result ("inner",$foo); # inner: defined in inner
my $foo; # re-declaring $foo
print_result ("inner", $foo); # inner:
}
# even though $foo was defined in the subroutine, it did not
# override the $foo outside the subroutine (localization occured)
print_result ("outer",$foo); # main: defined in main
sub print_result {
my ($proc,$value) = @_;
print qq{$proc:\t$value\n};
}
Поскольку Mojolicious использует use strict
, он требует, чтобы все переменные были объявлены с помощью (my
, our
, local
и т. Д.).
Обратите внимание, что происходит, когда вы используете my
более одного раза в коде выше. Это излишне повторно объявляет переменную, перезаписывая то, что было ранее назначено.
Как и в большинстве языков программирования, вам нужно объявить переменную только один раз, а затем снова использовать эту переменную при необходимости.