The fix presented in the bug report is not nice. It uses the
my $var if ..., discussed for example in
Conditional initialization of my-variables.
It would've been cleaner to use something like
|| die qq/Cannot open pid file "$self->{path}": $!\n/;
flock($fh, LOCK_EX | LOCK_NB)
|| die qq/pid "$self->{path}" already locked: $!\n/;
- my ($pid) = <$fh> =~ /^(\d+)/;
+ my $maybe = <$fh>;
+ $maybe = "" unless defined $maybe;
+ my ($pid) = $maybe =~ /^(\d+)/;
close $fh if @_ == 1;
map{substr$_->[0],$_->[1]||0,1}[\*||{},3],[[]],[ref qr-1,-,-1],[{}],[sub{}^*ARGV,3]