本文へスキップ
BecomeCoder

Perlのエラー · エラー7

Can't call method "X" on an undefined value ― undef のメソッドを呼んだ

undef(未定義値)に対してメソッドを呼ぶと出ます。オブジェクトを作り忘れた、または検索が空振りしたときに起こります。

出るコード

use strict;
my $user;
print $user->name();   # $user はまだ undef

エラーメッセージ

Can't call method "name" on an undefined value at script.pl line 3.

直し方

呼ぶ前に if (defined $user) で確認します。コンストラクタ(Class->new)の呼び忘れがないかも確認します。