You're going about it the wrong way. I assume that based on some previous
criteria, you need to perform a certain action, and you have that criteria
stored in the array: @list_of_subs
See if this works for you.
Create 1 sub, which we'll call MySub.
Pass it whatever is in the array, and have a bunch of if/elsif statements to
do different things based on the items in the array.
#Main Code
foreach $item(@list_of_whatever) { &MySub($item) }
#Our Sub
sub MySub
{
if ($_ eq "something")
{
print "Doing this";
}
elsif ($_ eq "somethingElse")
{
print "Doing that";
}
else
{
die "DOA";
}
}
-----Original Message-----
From: Zielfelder, Robert [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, September 24, 2002 1:44 PM
To: '[EMAIL PROTECTED]'
Subject: Using a variable name to invoke a subroutine
I have a script that uses an array to determine weather or not a subroutine
needs to be run or not. I want to be able do a foreach on the array and
invoke the subroutine using the control variable. The names of the
subroutines are the same as the items inside the array. This is what I have
so far:
.....
foreach $sub (@list_of_subs) {
&{$sub}; ##-- this is the part I am stuck on. This doesn't work
}
.....
I have a bunch of subroutines defined in the script, but they don't need to
be invoked unless the "@list_of_subs" contains the name of the sub. I know
that I could stick a bunch of if statements in there and make this work, but
I am trying to be a little more efficient if I can. Any insight would be
appreciated.
Best Regards,
Rz
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]