Инструменты, помогающие отследить, как был запущен Perl-скрипт:
<b><a href="http://search.cpan.org/perldoc/perlfunc#getppid" rel="nofollow noreferrer">getppid</a></b>
возвращает идентификатор родительского процесса. Затем вы можете использовать ps
или /proc/<pid>
для получения дополнительной информации о процессе вызова.
$^X
: полный путь к интерпретатору Perl, который может дать представление о том, как Perl был запущен из оболочки
$0
, __FILE__
: имя сценария, вызванного из командной строки, и имя текущего файла. Если они согласованы, то текущий файл содержит скрипт, который был вызван из командной строки.
@ARGV
: аргументы командной строки, переданные в ваш скрипт. С $^X
, $0
и @ARGV
вы точно знаете , как интерпретатор Perl был запущен из оболочки.
caller
: информация трассировки стека. Если caller
возвращает undef
в начале скрипта, то вы находитесь в верхней части стека, и ваш скрипт был вызван из оболочки. В противном случае caller
возвращает пакет, файл и строку, в которой был вызван ваш скрипт (с do
или require
).
$^T
: время (в секундах с начала эпохи), когда был запущен текущий Perl-скрипт, поэтому вы знаете , когда текущий Perl переводчик был запущен из оболочки. Используйте scalar localtime($^T)
, чтобы увидеть это значение в более удобном формате.