Можно ли в Perl определить, выполняется ли сценарий внутри другого сценария (предположительно, через system
или qx
)?
$ cat foo.pl
print "foo";
print "\n" if not $in_qx; # or the like.
Я понимаю, что это не применимо, если скрипт запускался через exec
.
Я точно знаю, что system
запускает процесс как fork
, и я знаю, что fork
может возвращать значение, которое является переменным, в зависимости от того, являетесь ли вы родительским или дочерним процессом. Не уверен насчет qx
.
Несмотря ни на что, я не уверен, как выяснить, если я нахожусь в fork
редактируемом процессе, фактически не выполняя fork
.