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

Re^4: importing functions with "PerlModule" Apache directive

by acanfora (Novice)
on May 09, 2012 at 13:11 UTC ( [id://969615]=note: print w/replies, xml ) Need Help??


in reply to Re^3: importing functions with "PerlModule" Apache directive
in thread importing functions with "PerlModule" Apache directive

Pay attention: I stated that Vars is actually available in my test script even if I did not imported it (purposely, at least) in any way.
startup.pl script: use CGI; mytestscript: #!/usr/bin/perl local our $p=Vars; # it works!!!

Replies are listed 'Best First'.
Re^5: importing functions with "PerlModule" Apache directive
by tobyink (Canon) on May 09, 2012 at 14:03 UTC

    You're not using strict, so of course local our $p=Vars will work. It's just an assignment of a string to a package variable. Compare:

    $ perl -ce'local our $p=Vars' -e syntax OK

    versus:

    $ perl -Mstrict -ce'local our $p=Vars' Bareword "Vars" not allowed while "strict subs" in use at -e line 1. -e had compilation errors.

    Also of interest:

    $ perl -MO=Deparse -e'local our $p=Vars' local $p = 'Vars'; -e syntax OK
    perl -E'sub Monkey::do{say$_,for@_,do{($monkey=[caller(0)]->[3])=~s{::}{ }and$monkey}}"Monkey say"->Monkey::do'

      :) but but but but but but but but acanfora says that Vars() is available :P

      My question is not about barewords. I can use Vars or Vars(), no matter what, my point is not that. The point is about _visibility_ of _function_ Vars in script _whithout_ pass through CGI object instantiation and _whithout_ explicitly importing anything via qw(whatever). Sorry for my bad English.
Re^5: importing functions with "PerlModule" Apache directive
by Anonymous Monk on May 09, 2012 at 13:17 UTC
      I am using Registry. I also found (it seems) the reason of the weird behavior: the CGI module makes use of AUTOLOAD. I think Apache::Request should be more suited to my purposes in this case...

        I also found (it seems) the reason of the weird behavior: the CGI module makes use of AUTOLOAD.

        Nope, AUTOLOAD doesn't have anything to do with exporting

        And since Registry compiles your program into its own namespace, there is no way exporting stuff (which you don't do) in startup.pl into namespace main would affect the custom Registry namespace your program is compiled in

        Are you using unmodified CGI.pm? Which version?

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others having a coffee break in the Monastery: (3)
As of 2024-04-25 20:23 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found