Absolut Newbie wrote:
> I have a program that generates a random number between 1 and 6.
> based on the outcome I want to run a subroutine that corresponds to
> the result. i.e if the result is 1 then the program should run sub
> F1. my question is how can I dynamically call the subroutine.
> 
> i tried this but obviously it didn't work
> 
> $var1 = int(rand(6)) + 1 ; # i didn't want zero as an answer
> $var1 ='F'.$var1; # sub names can't start w/ numbers
> 
> $var1(); # this is where it crashes

You need &$var1();

But 'use strict' doesn't like that, because $var1 is a so-called "soft"
reference, so you can enclose it in a block like this:

   { no strict 'refs'; &$var1(); }

This is generally frowned upon, but for what you're doing it's fine.

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to