そうしないuse strict;
と、次のコードが正常に機能し、「アリス」が出力されます。
assign_name();
print_name();
sub assign_name {
$name = "alice";
}
sub print_name {
print $name;
}
ただし、use strict;
そうすると、変数を使用する前に変数を宣言する必要があることがわかります。グローバル変数を宣言するour
代わりに使用する必要がある場所を読みました。my
だから私は以下を持っていました:
use strict;
use warnings;
assign_name();
print_name();
sub assign_name {
our $name = "alice";
}
sub print_name {
print $name; # This is line 12.
}
そして、次のエラーが表示されます。
Variable "$name" is not imported at test.pl line 12.
Global symbol "$name" requires explicit package name at test.pl line 12.
Execution of test.pl aborted due to compilation errors.
助けてください。