Здесь практически те же варианты только для Linux (конечно, после вмешательства оболочки):
pure perl
BEGIN {
my @cmd = ( );
if (open(my $h, "<:raw", "/proc/$$/cmdline")) {
# precisely, buffer size must be at least `getconf ARG_MAX`
read($h, my $buf, 1048576); close($h);
@cmd = split(/\0/s, $buf);
};
print join("\n\t", @cmd), "\n";
};
с использованием File :: Slurp:
BEGIN {
use File::Slurp;
my @cmd = split(/\0/s, File::Slurp::read_file("/proc/$$/cmdline", {binmode => ":raw"}));
print join("\n\t", @cmd), "\n";
};