Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight

Re: Diff between 'print POSIX::cuserid' and 'use POSIX; print cuserid'

by linuxer (Curate)
on Jan 08, 2013 at 00:10 UTC ( #1012133=note: print w/replies, xml ) Need Help??

in reply to Diff between 'print POSIX::cuserid' and 'use POSIX; print cuserid'

In your first example, you did a use POSIX; in the second, you did not. Why?

Without loading POSIX you won't be able to call a function like POSIX::cuserid.

Enable strictwarnings and see yourself what happens:
$ perl -wE 'say POSIX::cuserid' Name "POSIX::cuserid" used only once: possible typo at -e line 1. say() on unopened filehandle cuserid at -e line 1.
But with loading POSIX:
$ perl -MPOSIX -wE 'say POSIX::cuserid' linuxer


  • replaced strict with warnings; removed strict from code examples; the warning is the crucial part.

Replies are listed 'Best First'.
Re^2: Diff between 'print POSIX::cuserid' and 'use POSIX; print cuserid'
by wsanders (Novice) on Jan 08, 2013 at 21:10 UTC
    Thanks, yes, so in #2 POSIX isn't loaded, so perl -e 'print POSIX::cuserid' should return nothing, actually. That's the answer. There is something odd about this user's environment that is causing it to print his username. In *my* environment, and root's, it behaves the way it is supposed to. Not going to investigate further.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1012133]
[choroba]: The problem was bigger, as the test tried to call a method that didn't exist anymore
[marinersk]: :: ducking ::
[choroba]: because, someone renamed the method, but didn't notice it was used in the test, as the test was skipped
[marinersk]: Well, if the method doesn't exist, it would be hard to pass the test.
[choroba]: later, someone removed the new method, as all its usage places were safe, but didn't notice the test still used the old name
[choroba]: fortunately, it wasn't that hard to replace the method and fix a few remaining failures due to the changes we did to the codebase over the years
[marinersk]: choroba Sounds like a process improvement opportunity; tests may not all need to be run, but they should all be compiled with perl -c before check-in/promotion happens.
[choroba]: so, now I have the test, so I can start making changes in the code. Back to the original ticket, yay!
[marinersk]: I definitely love it when my $current_taask=& taskPop(); if ($current_task eq $original_task) { } is true.
[marinersk]: s/taask/task/g;

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (11)
As of 2017-05-25 15:16 GMT
Find Nodes?
    Voting Booth?