Fwd: using a subroutine ref w/ strict refs

Chris Radcliff chris at velocigen.com
Tue Oct 16 16:16:46 CDT 2001


~sdpm~

I'm not sure if it gains you anything, but this will work:

#!/usr/bin/perl
use strict;
my $command = $ARGV[0];

if ($command) {
    eval "${command}()";
    exit;
}

sub say_hello {
     print "hello\n";
}

sub AUTOLOAD {
     print "Invalid Sub\n"; exit;
}

The eval gets around the strict 'subs' pragma, but it's not liable to 
gain any performance.

Cheers,
~chris

Chuck Phillips wrote:

>>
>> Quick question:
>> How would I do the following and ditch the "no strict 'refs'" line?
>> --------
>> #!/usr/bin/perl
>> use strict;
>> my $command = $ARGV[0];
>>
>> no strict 'refs';
>> if ($command) {
>>    &$command;
>>    exit;
>> }
>>
>> sub say_hello {
>>     print "hello\n";
>> }
>>
>> sub AUTOLOAD {
>>     print "Invalid Sub\n"; exit;
>> }
>>
> 


~sdpm~

The posting address is: san-diego-pm-list at hfb.pm.org

List requests should be sent to: majordomo at hfb.pm.org

If you ever want to remove yourself from this mailing list,
you can send mail to <majordomo at happyfunball.pm.org> with the following
command in the body of your email message:

    unsubscribe san-diego-pm-list

If you ever need to get in contact with the owner of the list,
(if you have trouble unsubscribing, or have questions about the
list itself) send email to <owner-san-diego-pm-list at happyfunball.pm.org> .
This is the general rule for most mailing lists when you need
to contact a human.




More information about the San-Diego-pm mailing list