.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man v6.0.2 (Pod::Simple 3.48) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Required to disable full justification in groff 1.23.0. .if n .ds AD l .\" ======================================================================== .\" .IX Title "Devel::FindPerl 3" .TH Devel::FindPerl 3 2026-08-26 "perl v5.44.0" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH SYNOPSIS .IX Header "SYNOPSIS" .Vb 2 \& use Devel::FindPerl \*(Aqfind_perl_interpreter\*(Aq; \& system find_perl_interpreter, \*(Aq\-e\*(Aq, \*(Aq...\*(Aq; .Ve .SH DESCRIPTION .IX Header "DESCRIPTION" This module tries to find the path to the currently running perl. It (optionally) exports the following functions: .PP This function will try really really hard to find the path to the perl running your program. I should be able to find it in most circumstances. Note that the result of this function will be cached for any serialized value of \f(CW$config\fR. It will return a list that usually but not necessarily is containing one element; additional elements are arguments that must be passed to that perl for correct functioning. .PP Tests if the perl in \f(CW$path\fR is the same perl as the currently running one. .SH SECURITY .IX Header "SECURITY" This module by default does things that are not particularly secure (run programs based on external input). In tainted mode, it will try to avoid any insecure action, but that may affect its ability to find the perl executable. .SH "SEE ALSO" .IX Header "SEE ALSO" .IP \(bu 4 Probe::Perl .Sp This module has much the same purpose as Probe::Perl, in fact the algorithm is mostly the same as both are extracted from Module::Build at different points in time. If I had known about it when I extracted it myself, I probably wouldn\*(Aqt have bothered, but now that I do have it there are a number of reasons for me to prefer Devel::FindPerl over Probe::Perl .RS 4 .IP \(bu 4 Separation of concerns. P::P does 4 completely different things (finding perl, managing configuration, categorizing platorms and formatting a perl version. Devel::FindPerl is instead complemented by modules such as ExtUtils::Config and Perl::OSType. .IP \(bu 4 It handles tainting better. In particular, \f(CW\*(C`find_perl_interpreter\*(C'\fR never returns a tainted value, even in tainted mode. .IP \(bu 4 It was written with inclusion in core in mind, though the removal of Module::Build from core after perl 5.20 may make this point moot. .RE .RS 4 .RE .SH "POD ERRORS" .IX Header "POD ERRORS" Hey! \fBThe above document had some coding errors, which are explained below:\fR .IP "Around line 146:" 4 .IX Item "Around line 146:" Unknown directive: =func .IP "Around line 150:" 4 .IX Item "Around line 150:" Unknown directive: =func