Вы можете объявить переменную в области видимости, которая включает 2 функции:
{ my $myvar
sub foo{
$myvar = "Hello";
}
sub foo1{
my $myvar1 = $myvar;
}
}
Это не очень элегантно, и может быть трудно поддерживать, поскольку не ясно в foo1
, где было установлено значение $myvar
. Вероятно, лучше передать переменную в качестве аргумента.
sub foo {
my $myvar = "Hello";
return $myvar;
}
sub foo1 {
my( $myvar)= @_;
my $myvar1 = $myvar;
}
# calling code
my $myvar= foo();
foo1( $myvar);
Обратите внимание, что все 3 $myvar
- это разные переменные в разных областях.
В качестве примечания, использование прототипов (sub foo()
), вероятно, не является хорошей идеей, если вы действительно не знаете, что они делают, что, вероятно, не так (см. Проблема с прототипами для обсуждения прототипов)