私は自分が間違っていることを知りませんでした。Perl スクリプトをデバッグすると、終了しました。scipr が終了する場所は、関数からの完全に通常のリターンです。
sub new {
my $self = shift;
$self = {};
bless $self;
#instance of "base" class Features.pm
$self->{"base"} = Features->new();
my @features = ();
$self->{"features"} = \@features;
return $self; # <== here is script terminated
}
終了する直前に、Carp
モジュールから関数longmess
に移動します。これは巨大なプロジェクトであるため、ここではコードのプレビューのみを掲載します。通常のコードがどのように失敗するかを確認するだけです。
終了につながるモジュールをプロジェクトから「削除」し、このモジュールを個別に実行すると、問題ありません。したがって、エラーは別の場所になります。
(このエラーはコードのさまざまな場所で発生しましたが、return
コマンドでのみ発生しました) perl 5.16、Eclipse、Epic、および c:\Perl\site\lib\ にあるプロジェクトを使用しています
私を助けてください。ありがとうございました
編集
問題は、Eclipse でデバッグ モードでプログラムを実行した場合にのみ発生します。デバッグせずに実行すると