6

CPAN と自分のプロジェクトの依存 Perl モジュールを内部的に使用する Perl スクリプトがあります。$0スクリプトで(プロセス スクリプト名) 属性値を使用しています。不思議なことに、いくつかの依存 API 呼び出しの後、この値が突然 NULL になります。私は使用していないeval()system()、自分のプロセスにいます。通常のトップダウン実行スクリプトです。価値が失われる理由は何だと思い$0ますか?

4

1 に答える 1

9

Tie::StdScalarを使用して、誰が変更したかを調べます$0

{
   package Tie::Scalar::Croaker;
   use Tie::Scalar qw( );
   use Carp qw( confess );
   our @ISA = qw( Tie::StdScalar );
   sub FETCH { $0 }
   sub STORE { confess('$0 changed'); }
   tie($0, Tie::Scalar::Croaker::);
}
于 2013-08-02T12:02:46.507 に答える