tweeeetyのぶろぐ的めも

アウトプットが少なかったダメな自分をアウトプット<br>\(^o^)/

perlでdid not return a true valueと表示されるという恥ずかしいエラーについて

はじめに

perl使っていてホント恥ずかしいところでエラったので自分戒めメモ

概要

perlを実行したらこんな感じで表示される

# perl class.pl
Class.pm did not return a true value at class.pl line 2.
BEGIN failed--compilation aborted at class.pl line 2.

ファイルの中身とか

ファイルの内容はこんなん Class.pm

package Class;
sub foo {
  my $self = shift;
  # any
  print 'i am Class.pm';
}

class.pl

use lib '/home/hoge/test_perl';
use Class;
Class->foo();

原因

原因はこういうこと

requireやuseされたファイルは、正常にコンパイルされ、初期化コードを正しく実行したことを示すために、真を返さなければならない。

※自分は文章がつたないのでこちら引用させて頂きました!
perlメモ

Class.pmを修正

Class.pm

package Class;
sub foo {
  my $self = shift;
  # any
  print 'i am Class.pm';
}
1;

最後の1;を入れただけですが、これで初期化コードを正しく実行したことを示す真の値(1)を返しました  
はぁ、、、動かないわけないと思ってると変なところで躓きますね(--;