in reply to Re^2: Dual personality: Module and script
in thread Dual personality: Module and script

Of course, that's also the least robust solution of the four.

Makeshifts last the longest.

  • Comment on Re^3: Dual personality: Module and script

Replies are listed 'Best First'.
Re^4: Dual personality: Module and script
by Anonymous Monk on Aug 03, 2004 at 16:23 UTC
    True and I agree
    but
    a working solution is all I needed, and it is simple and it works. No need to get too much robustness.
    I guess my second choice would be the "caller EXPR", so I keep this in mind if the simple solution stops working.
    thanks again for all replies.
      unless (defined caller) { ... } really is the simplist and best way to do this.

      FWIW, I agree that my suggestion (of using $0) is not the best...I would actually use merlyn's suggestion of using caller. I generally eschew the use of such magic variables when there's a way to do it that might be easier for someone looking at it later to figure out.

      Brad

        I actually was ahead of you and changed to "caller" right after I tried $0, albeit it worked for me, and I was not insisting on robust solution for any and all Perl/OS/hardware combinations.

        It came as simple as adding the short standalone subroutine and one line of testing :)
        standalone() if (!defined caller); # command-line or "system"