b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

scalar() perl_stata scalar_perl substr(13)

电脑杂谈  发布时间:2017-01-23 23:04:07  来源:网络整理

Perl 做自己的 sprintf 格式化——它模拟 C 函数 sprintf,但是它没有用 C 的 sprintf。(注:除了浮点数以外,并且就算是浮点数也只允许标准的修饰词。)结果是,任何你本地的 sprintf(3) 函数的扩展都不能在 Perl 里使用。

Perl 的 sprintf 允许全局使用的已知转化在 表29-4 中列出。

表29-4。sprintf 的格式

另外,Perl 允许下列广泛支持的转换:

最后,为了向下兼容(我们的意思就是“向下”),Perl 允许下列不必要的但广泛支持的转换:

Perl 允许下列众所周知的标志出现在 % 和转换字符之间:

域 | 含义|

l | | 把整数解释成 C 类型的 long 或者 unsigned long|

还有两个 Perl 相关的标志

如果你的 Perl 理解“四倍数”(64位整数),不管是该平台本机支持还是因为你指明 Perl 带着该功能编译,那么字符 d u o x X b i D U O 打印64位整数,并且它们前面可以选择前缀 ll,L,或则 q。比如,%lld %16LX %qo。

如果 Perl 理解“long double”(要求该平台支持 long double),那么你可以在 e f g E F G 标志前面增加可选的 ll 或者 L。比如,%llf %Lg。

在标志里可以出现数字的位置,都可以用一个星号(“*”)代替,这时候 Perl 使用参数列表里的下一个项作为给出的数字(也就是说,当作域宽度或者精度)。如果通过“*”获取的域宽度是负数,那么它和“-”标志有一样的效果:左对齐。

v 标志可以用于显示任意字串里的序数值:

   sprintf "version is v%vd\n", $^V;      # Perl 的版本
   sprintf "address is %vd\n", %addr;   # IPv4 地址
   sprintf "address is %*vX\n", ":", $addr;   # IPv6 地址
   sprintf "bits are %*vb\n", " ", $bits;   # 随机的位串

sqrt EXPR

sqrt

这个函数返回 EXPR 的平方根。如果需要其他的根,比如立方根,你可以使用 ** 操作符求那个数字的分数幂。不要试图在着两种方法里使用负数,因为它有一些稍微有些复杂的问题(并且抛出一个例外)。但是有一个模块可以处理这些事情:

   use Main::Complex;
   print sqrt(-2);      # 打印出 1.4142135623731i

srand EXPR

srand

这个函数为 rand 操作符设置随机数。如果省略了 EXPR,那么它使用一个内核提供的半随机的数值(如果内核支持 /dev/urandom 设备)或者是一个基于当前时间和进程号以及一些其他东西的数值。通常我们完全没有必要调用 srand,因为如果你没有明确调用它,那么它也会在第一次调用 rand 操作符时隐含调用。不过,在早于 Perl 5.004 的版本里不是这样的,所以如果你的脚本需要在老 Perl 版本上运行,那么你就应该调用 srand。

那些经常被调用的程序(比如 CGI 脚本),如果只是简单地用 time ^ $$ 做的话,那么很容易惨遭下面的数学性质的攻击,那就是:有三分之一的机会 a^b == (a+1)^(b+1)。所以不要这么干。应该用下面的代码:


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-28372-13.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...