【发布时间】:2011-06-15 17:23:38
【问题描述】:
我有一个接受用户输入的函数。输入可能是整数、浮点数或字符串。我有三个重载函数,应该根据输入数据的 DATA TYPE 调用它们。例如,如果用户输入一个整数(比如 100),则应调用具有整数参数的函数。如果用户输入一个字符串(比如“100”),则应该调用具有字符串参数的函数。
所以我需要找出输入数据的数据类型。使用正则表达式,我能够区分整数和浮点数(因为我只需要找出类型,我不喜欢使用 cpan.org 提供的库),但我无法弄清楚如何区分字符串中的整数。 Perl 将“100”和 100 视为相同?有没有办法解决这个问题?
【问题讨论】:
-
处理
"100"和100通常被认为是Perl 的一个特性。您需要更好地解释为什么这是一个问题。当用户调用your_function(100)时会发生什么,与用户调用your_function("100")时应该有什么不同? -
哦.. 我想不深入这个细节。但是由于情况需要:我必须从 perl 内部调用一些 C 函数。这些函数被重载并出现在我的库中。所以我需要找出类型并明确调用函数的正确版本。
-
忽略我的[已删除]答案。我误解了问题的意图,并没有意识到您所说的“输入”是函数的物理参数。
-
如果用户调用 my_function(100),函数应该调用一些 C_int(100) 而如果用户调用 my_function("100"),函数应该调用,比如 C_string("100" )
标签: perl