[Melbourne-pm] $0 behaviour

Mathew Robertson mathew.blair.robertson at gmail.com
Sun Jul 15 22:20:04 PDT 2012


Hi list,

I having been having some quirky behaviour when assigning $0...
For me this turned out to be as a result from this:

$0 = abs_path(dirname($0))."/".basename($0);

ie: make the process name (as shown in top/ps, be the name of the script -
instead of the perl binary.
Which worked well when running "pidof whatever.pl", "ps auxww | grep
whatever.pl", but not so much for "killall whatever.pl".

Some Googling has turned up the problem/cause:
http://blogs.perl.org/users/aevar_arnfjor_bjarmason/2010/03/what-happens-when-you-assign-to-0.html

perl version is: v5.14.2


So I run the example shown -> which shows that the patch is applied.  Upon
further investigation, I think the implementation could be refined, ie: in
my code above, only the first 16 characters of string are chomped, thus
leaving the program title with part of the the basepath of the script. In
my case I worked around it using Sys::Prtcl->prctl_name($BASENAME),


The suggested change to this enhancement would be, if $0 points at a
script, then change $0 assignment so that Perl grok's the rightmost part of
the path. ie: leave $0 as-is, but modify this patch as so.

Thoughts?
Mathew
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/melbourne-pm/attachments/20120716/fc3cd065/attachment.html>


More information about the Melbourne-pm mailing list