Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

Re: How to load the subs without running the script

by snoopy (Deacon)
on Aug 03, 2010 at 22:49 UTC ( #852765=note: print w/ replies, xml ) Need Help??


in reply to SOLVED: How to load the subs without running the script

How about returning up front? Say for example, if monster.pl contains:

#!/usr/bin/perl sub mysub {print "I want to see this\n"}; print "but I don't want to see this\n"; exit; # don't want to exit either
Then:
#!/usr/bin/perl use warnings; use strict; my $prog_code = do {local $/ = undef; open (my $fh, '<', 'monster.pl') or die "open error: $!"; <$fh>}; eval 'return;'.$prog_code ; die "eval error: $@" if $@; warn "trying mysub"; mysub();
The return gets executed as soon as compilation has finished, avoiding execution of the main body:
perl do.pl trying mysub at do.pl line 13. I want to see this Compilation finished at Wed Aug 4 10:08:26

Update: Removed intermediate subroutine and added sample output.


Comment on Re: How to load the subs without running the script
Select or Download Code
Replies are listed 'Best First'.
Re^2: How to load the subs without running the script
by Narveson (Chaplain) on Aug 04, 2010 at 20:09 UTC

    Nice. I especially like your helpful summary of monster.pl. I should have included something like it, but your version abstracts the problem better than I could have done.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (18)
As of 2015-07-30 17:03 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (273 votes), past polls