> i know this should be a simple step or two that i'm missing, and i
> haven't been able to figure it out from reading yet...
>
> i have the following code:
>
> $sth = $mysql_dbh->prepare("select subroutine_pointer from
> $database.equipment_manufacturer where
> manufacturer=\"$remedy_eqpt_mfgr\"");
> $sth->execute();
> $subroutine_pointer = $sth->fetchrow_array();
> no strict "refs";
> &$subroutine_pointer() unless $subroutine_pointer eq "";
> use strict "refs";
>
> this pulls a phrase from the database that matches a subroutine name
> that i want to call based on certain other criteria, then displays that
> sub's output to a web page. this works fine as is but i want to learn
> how to restructure this so i don't have to use "no strict" and "use
> strict" around the call. all suggestions welcome *s*
>
One way, I won't guarantee the best, would be to store a mapping of
subroutine references into a hash, where the hash key replaces the
subroutine name, then you would index into the hash using the value from
the db to access the reference of the sub to call.
%subs = ( 'db_value1' => sub { print "Called sub 1"; },
'db_value2' => sub { print "Called sub 2"; }, );
$subs{$subroutine_pointer}->();
Where $subroutine_pointer is the string 'db_value1', etc.
http://danconia.org
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>