本文へスキップ
BecomeCoder

Perlのエラー · エラー1

Global symbol requires explicit package name ― my の付け忘れ

use strict; 下で、変数my で宣言せずに使うと出ます。タイプミスした変数名が黙って別変数になる事故を防ぐための仕組みです。

出るコード

use strict;
$message = "Hello";   # my が無い
print "$message\n";

エラーメッセージ

Global symbol "$message" requires explicit package name (did you forget to declare "my $message"?) at script.pl line 2.

直し方

変数は初出時に my で宣言します(my $message = "Hello";)。配列my @aハッシュmy %h