如何从命令行传递 750_000 之类的参数
how to pass arguments like 750_000 from command line
我无法通过 shift 将 750_000
这样的值从命令行传递给 usleep
这样的函数。仍然收到“.. 不是数字”。
有什么想法吗?
谢谢。
抱歉,回答我自己的问题。
可以使用指数语法来完成。
示例:
1_000_000
可以写成1e6
1_234_567
可以写成
1.234567e6
750_000
语法在源代码中对 numeric literals 有效,在填充值时它会被忽略。当使用已经创建的字符串(例如从命令行参数中读取)作为数字时,它是无效的。如您所述,数字可以使用科学记数法存储在字符串中。或者你可以自己删除下划线:
use strict;
use warnings;
use Time::HiRes 'usleep';
my $num = shift;
$num =~ tr/_//d;
usleep $num;
我无法通过 shift 将 750_000
这样的值从命令行传递给 usleep
这样的函数。仍然收到“.. 不是数字”。
有什么想法吗?
谢谢。
抱歉,回答我自己的问题。
可以使用指数语法来完成。
示例:
1_000_000
可以写成1e6
1_234_567
可以写成1.234567e6
750_000
语法在源代码中对 numeric literals 有效,在填充值时它会被忽略。当使用已经创建的字符串(例如从命令行参数中读取)作为数字时,它是无效的。如您所述,数字可以使用科学记数法存储在字符串中。或者你可以自己删除下划线:
use strict;
use warnings;
use Time::HiRes 'usleep';
my $num = shift;
$num =~ tr/_//d;
usleep $num;