in reply to Expanding Variable Names in Calls to Subroutines
What you want to do is called using a symbolic reference. For details see perlman:perlref
It is generally considered a rather bad idea to use symbolic references without a good reason.
The strict pragma was developed to stop you doing this amongst many other generally bad things. You will thus need to use no strict refs or worse still no strict! For details on why strict is a good idea see Use strict warnings and diagnostics
There are almost always better ways to do it.
You will make your code hard to understand and maintain if you use a variable as the name of the subroutine that you want to call.
OK warning lecture aside here is how you do it :-)
use strict; no strict 'refs'; sub a1 { print "a1\n" } sub a2 { print "a2\n" } sub a3 { print "a3\n" } sub a4 { print "a4\n" } foreach my $num (1..4) { my $sub_to_call = "a".$num; &$sub_to_call; }
I'm not sure this will really help you!
cheers
tachyon
s&&rsenoyhcatreve&&&s&n.+t&"$'$`$\"$\&"&ee&&y&srve&&d&&print
|
|---|