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

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.
  • Comment on Re^4: Dual personality: Module and script

Replies are listed 'Best First'.
Re^5: Dual personality: Module and script
by ysth (Canon) on Aug 03, 2004 at 19:28 UTC
    unless (defined caller) { ... } really is the simplist and best way to do this.
Re^5: Dual personality: Module and script
by bgreenlee (Friar) on Aug 04, 2004 at 11:23 UTC

    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"