in reply to Using return values in subroutines

In case any of the previous, more efficient solution(s?), while accurate, didn't quite hit the spot:
sub main { my @returned = &first; &second(@returned); #The & isn't necessary if perl already knows that first #and second are subroutines, i.e. if you declare them #prior to use as in the previous examples. } sub first { my @something = (qw[some stuff....]); return @something; } sub second { my @needs = @_; #@needs = something }
One step better than passing out an array is passing a reference to the array. Both of these options let you manipulate the returned values in your main, which second(first()) won't. That's probably the main reason for not nesting them. The only other reason I can think of would be to
disambiguate($a, @really, $long[3], {and => 'potentially', rather => \ +%confusing} &call( 'that', &is(\$already, $crowded)), $got_it{?})
OC,TMTOWTDI ;)

"One is enough. If you are acquainted with the principle, what do you care for the myriad instances and applications?"
- Henry David Thoreau, Walden