switch
de C usando
un hash de punteros a subrutinas. Escriba una
función switch
que recibe como segundo parámetro un hash
con claves las constantes del case
y como
valores las referencias a las subrutinas. Cómo primer
parámetro recibe un valor escalar. Según sea el valor
deberá ejecutar la subrutina con clave correspondiente.
Si no hay ninguna clave con ese valor deberá de ejecutar
la subrutina que corresponde a la clave default
,
si tal clave existe en el hash.
En el ejemplo que haga para la llamada a la función
switch
use subrutinas
anónimas cuando el código en cuestión lleve menos de
una línea.
El módulo Switch
de Damian Conway proporciona
una sentencia switch
mas completa.
Sigue un ejemplo de uso:
$ cat -n useswitch.pl 1 #!/usr/local/bin/perl5.8.0 -w 2 3 use Switch; 4 5 $val = shift; 6 7 switch ($val) { 8 case 1 { print "number 1\n" } 9 case "hello" { print "string hello\n" } 10 else { print " none of these two\n" } 11 }