http://www.perlmonks.org?node_id=1032473


in reply to elevated privileges for a single call

G'day adalby,

Welcome to the monastery.

See perlvar for special variables that capture the type of information you're after. Here's a quick example with $^X, $0 and $$:

$ cat fred.pl #!/usr/bin/env perl use Cwd qw{abs_path}; print "Perl executing the script: ", `which $^X`; print "Script being executed: ", abs_path($0), "\n"; print "PID: $$\n";
$ fred.pl Perl executing the script: /Users/ken/perl5/perlbrew/perls/perl-5.14.2 +_WITH_THREADS/bin/perl Script being executed: /Users/ken/tmp/fred.pl PID: 33980

Variables relating to permissions include: $< (real user id), $> (effective user id), $( (real group id), $) (effective group id).

The English module provides longer, more meaningful names for these punctuation variables. Don't forget to load it as:

use English qw{-no_match_vars};

You might also find perlsec to be useful (even if only for additional examples using these special variables).

-- Ken