http://www.perlmonks.org?node_id=1210490


in reply to Re^2: Help Changing use into require/import
in thread Help Changing use into require/import

That's just my quick example. There is no new() constructor in Capture::Tiny, I was just throwing down a quick template and overlooked that. That'd be where you use the capture() sub you imported.

  • Comment on Re^3: Help Changing use into require/import

Replies are listed 'Best First'.
Re^4: Help Changing use into require/import
by computergeek (Novice) on Mar 08, 2018 at 16:40 UTC

    I have read a "use" does a require and import but when I try to do these explicitly it just does not seem to work. You say that capture tiny has no new constructor and I do not know how to translate that to what needs to be done to load the module dynamically. I have tried to move on to ipc::run but am having similar difficulties so I for sure do not have the knowledge to do what needs to be done to load these dynamically or they cannot be loaded dynamically and again if they cannot, I don't know how to tell for sure that it is an impossible task which takes me back to the original question of I am looking to learn generically how to look at a module and tell what is required for a module and adapt a require/import combo that will work based on the way the module was written. I am in essence asking not to give me the fish although that would be appreciated but also teach me to fish so I can do this from now on.

      > "use" does a require and import

      in a BEGIN block. That's important, because it can change how the rest of the code is parsed. For OO modules, that's usually not an issue, but if the module introduces keywords with fancy syntax (like capture { ... }), you need to predeclare these with the appropriate prototypes, otherwise the parser can't parse them; or you need to call them without the special syntax (capture(sub { ... });). Read perlsub to learn about compile time and prototypes.

      ($q=q:Sq=~/;[c](.)(.)/;chr(-||-|5+lengthSq)`"S|oS2"`map{chr |+ord }map{substrSq`S_+|`|}3E|-|`7**2-3:)=~y+S|`+$1,++print+eval$q,q,a,