Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

Re^3: warnings pragma anomaly

by BrowserUk (Patriarch)
on Oct 19, 2015 at 21:59 UTC ( [id://1145357]=note: print w/replies, xml ) Need Help??


in reply to Re^2: warnings pragma anomaly
in thread warnings pragma anomaly

As the return value of this expression is returned and checked for truthness, it's not used in a void context.

Are you sure about that? If you end a package with just: 1; no warning is produced; but if you end it with just: 42;:

C:\test>perl -Mstrict -w package x; sub f{ 1 } 42; ^Z Useless use of a constant in void context at - line 5.

Although it is returned and checked at runtime; at the point of parsing it is in a void context.

And you can't avoid that by prefixing a return statement either:

C:\test>perl -Mstrict -w package x; sub f{ 1 } return 42; ^Z Can't return outside a subroutine at - line 3.

With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority". I knew I was on the right track :)
In the absence of evidence, opinion is indistinguishable from prejudice.

Replies are listed 'Best First'.
Re^4: warnings pragma anomaly
by choroba (Cardinal) on Oct 19, 2015 at 22:25 UTC
    I usually don't run modules, I use them. No warning is produced in such situations.
    لսႽ† ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ

      True. But before we even start talking about unit tests, it would be nice to have

      perl -wc Foo.pm
      at least come up with the "Foo.pm syntax ok" message and without raising any warnings.

      Given

      package Foo; 42;
      this would give "syntax ok" but also the "useless use of constant in void context" warning, whereas
      package Foo; 1;
      would only give the "syntax ok" message.

        You can still do
        perl -MFoo -wce1
        لսႽ† ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ

      Good point :)

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others imbibing at the Monastery: (5)
As of 2024-04-19 06:50 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found