edem Asked:2020-08-11 03:19:18 +0000 UTC2020-08-11 03:19:18 +0000 UTC 2020-08-11 03:19:18 +0000 UTC 如何避免将浮点数隐式转换为字符串? 772 问题本质: perl -MData::Dumper -E 'say Dumper 3' $VAR1 = 3; perl -MData::Dumper -E 'say Dumper 3.5' $VAR1 = '3.5'; 如何避免? perl 1 个回答 Voted Best Answer gottar 2020-08-11T04:11:10Z2020-08-11T04:11:10Z 简短回答:不要在发生此转换的上下文中使用数字。 真的。Perl 中没有“字符串”或“数字”数据类型,只有标量。如何准确解释这个标量完全取决于上下文。在这种情况下,转换为字符串的罪魁祸首是 Data::Dumper 模块本身,它在内部执行此操作。例如, Data::Printer(顺便说一句,它的温度要低一个数量级)则相反,将任何看起来像数字的字符串解释为数字: use Data::Printer; my @data = ( 3, 3.5, '3.5', '3.a' ); p @data; 结论: [ [0] 3, [1] 3.5, [2] 3.5, [3] "3.a" ]
简短回答:不要在发生此转换的上下文中使用数字。
真的。Perl 中没有“字符串”或“数字”数据类型,只有标量。如何准确解释这个标量完全取决于上下文。在这种情况下,转换为字符串的罪魁祸首是 Data::Dumper 模块本身,它在内部执行此操作。例如, Data::Printer(顺便说一句,它的温度要低一个数量级)则相反,将任何看起来像数字的字符串解释为数字:
结论: