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


in reply to Re: To call a sub from another sub
in thread To call a sub from another sub

This node falls below the community's threshold of quality. You may see it by logging in.

Replies are listed 'Best First'.
Re: To call a sub from another sub
by jonadab (Parson) on Feb 02, 2006 at 12:19 UTC
    Yes, it'll work just fine. It will even work if the outer subroutine is a lexical closure and passes the other subroutine one of the lexically-retained references it is holding, like this:
    sub :: {return lc pop} sub jonadab { my $lex = shift; @ARGV=qw(http://); return sub{ my ($ical) = @_; my $closure = :: $lex.".".$ical."/".$/; }} my $foo = jonadab("PerlMonks"); $\=$foo->("Org"); print shift;

    Note: if you turn in code like that for homework, don't expect a good grade.

Re^3: To call a sub from another sub
by jkva (Chaplain) on Feb 02, 2006 at 12:02 UTC
    Perhaps you want this :
    sub subroutine_1 { my $val = subroutine_2(); print "$val this is subroutine_2 output!"; } sub subroutine_2 { return "w00t!"; }
    It does not pass it back to subroutine_2 but should give you a rough idea of how things like these work.
      Two points:
      • You missed the part where a value is passed in, processed, and returned.
      • Don't just hand him complete working code. He made no attempt to write any code himself, and he won't learn anything until he does, and it's obviously homework, the first assignment of the semester by the look of it.