Tengo una función que acepta una entrada del usuario. La entrada puede ser un número entero, un flotador o una cadena. Tengo tres funciones sobrecargadas que deben invocarse en función del TIPO DE DATO de los datos ingresados. Por ejemplo, si el usuario ingresa un entero (digamos 100), se debe llamar a la función que tiene un parámetro entero. Si el usuario ingresa una cadena (digamos "100"), debe invocarse la función que tiene el parámetro de cadena.Encontrar el tipo de datos de una variable escalar en Perl
Necesito averiguar el tipo de datos de los datos ingresados. Con las expresiones regulares puedo distinguir entre un número entero y un punto flotante (ya que solo necesito encontrar el tipo, no prefiero usar la biblioteca provista en cpan.org), pero no puedo descifrar cómo diferenciar un entero de una cadena. Perl trata a "100" y 100 como lo mismo? ¿Hay alguna forma de evitar este problema?
Tratar ' "100"' y '100' la misma se considera generalmente una característica de Perl. Necesita explicar mejor por qué es un problema. ¿Qué debería suceder cuando un usuario llama a 'your_function (100)' y cómo debería ser diferente de cuando un usuario llama a 'your_function (" 100 ")'? – mob
Oh ... Pensé en no entrar en los detalles de esto. Pero como la situación lo exige: tengo que llamar algunas funciones C desde dentro de Perl. Las funciones están sobrecargadas y presentes en mi biblioteca. Entonces necesito averiguar el tipo e invocar la versión correcta de la función EXPLICITAMENTE. – letsc
Ignorar mi respuesta [eliminada]. Entendí mal la intención de la pregunta, y no me di cuenta de que estaba hablando de la "entrada" como argumentos físicos para las funciones. – dolphy