in reply to Re^5: Is Perl a good career move?
in thread Is Perl a good career move?
The functions created by create_functions are named, not anonymous. The value returned by create_function is the name of the newly created function. This name begins with a nullbyte, but it is a global name anyhow. $foo = create_function(...); $foo(); works because $foo here is a symbolic reference. create_function uses eval and has many caveats. From PHP's source:
The function has a name, and is thus not anonymous. PHP's documentation is outright false.sprintf(eval_code, "function " LAMBDA_TEMP_FUNCNAME "(%s){%s}", Z_STRV +AL_PP(z_function_args), Z_STRVAL_PP(z_function_code));
Your dispatch table may work for you. But it is very inefficient and very ugly. You'd even be better off with a bunch of explicitly named functions and simple symbolic references. Back to square one of the programming mine field...
Juerd # { site => 'juerd.nl', plp_site => 'plp.juerd.nl', do_not_use => 'spamtrap' }
|
---|