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.
In the absence of evidence, opinion is indistinguishable from prejudice.
|