http://qs321.pair.com?node_id=1012133


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

Updates

  • 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.