Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Re^2: Undefined value returned on call to readline (<>)?

by choroba (Cardinal)
on Feb 17, 2025 at 08:25 UTC ( [id://11164006]=note: print w/replies, xml ) Need Help??


in reply to Re: Undefined value returned on call to readline (<>)?
in thread Undefined value returned on call to readline (<>)?

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]

Replies are listed 'Best First'.
Re^3: Undefined value returned on call to readline (<>)?
by Intrepid (Deacon) on Feb 18, 2025 at 19:52 UTC
    "It would've been cleaner to use something like"
    ...

    I happily accept your patch, choroba - if only I was the module author. And I read the bug thread over at Debian and I am in agreement that it was not nice.

    This was interesting, educational for me, points for choroba and ikegami. The reply from ikegami confirmed what I suspected, and the discussion at Conditional initialization of my-variables was enlightening. I had looked at that code in Proc-PID-File and it bothered me with out me knowing exactly why. I guess I have some good Perl instincts after all; sometimes we code too compactly, saving a couple more lines of code but introducing a problem in doing so. Yes, indeed, Perl lends itself to obfuscation.

    Feb 18, 2025 at 19:51 UTC

    A just machine to make big decisions
    Programmed by fellows (and gals) with compassion and vision
    We'll be clean when their work is done
    We'll be eternally free yes, and eternally young
    Donald Fagen –> I.G.Y.
    (Slightly modified for inclusiveness)

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://11164006]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others lurking in the Monastery: (3)
As of 2025-06-14 10:28 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?
    erzuuliAnonymous Monks are no longer allowed to use Super Search, due to an excessive use of this resource by robots.