Getting the process id for current perl script

You can use $$ to get the process ID of the perl interpreter running your script:

iancs-imac:Documents ian$ cat test.pl 
print "$$\n";
sleep(10000);
exit()

ians-imac:Documents ian$ perl test.pl 
42291

In another shell:

iancs-imac:~ ian$ sudo ps -ef | grep perl
  501 42291 42281   0   0:00.00 ttys000    0:00.01 perl test.pl
  501 42297 42280   0   0:00.00 ttys001    0:00.00 grep perl

To learn more about about special Perl variables:

perldoc perlvar

Or see the official online version of that information.


In addition to $$ as Ian mentions, I'm a fan of making code more readable.

To that end, Perl supports the mnemonic $PID if you use English to enable the aliases.

Tags:

Perl