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

scalar() perl_stata scalar_perl substr(29)

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

   $bitstring = pack "b*", join('', @bits);
   print "$bitstring\n";   # "TC",和前面例子一样

unpack 可以用于从该位串中抽取这个 0 和 1 的列表:

   @bits = split(//, unpack("b*", $bitstring));
   print "@bits\n";      # 0 0 1 0 1 0 1 0 1 1 0 0 0 0 1 0

如果你知道位串的位的确切长度,那么这个长度可以用于“*”的位置。

参阅 select 获取使用 vec 生成的位图的其他的例子。参阅 pack 和 unpack 获取操作二进制数据的更高级别的方法。

wait

这个函数等待一个子进程退出并返回消失了的进程的 PID,或者如果没有子进程了就返回 -1(或者在一些系统里,子进程自动被收割也如此。)它在 $? 里返回的状态和在 system 里描述的一样。如果你有僵死子进程,那么你就应该调用这个函数,或者 waitpid。

如果你在等待一个子进程,但是用 wait 没有找到它,那么你可能就是调用了 system,关闭了一个管道,或者在 fork 和 wait 之间使用了反勾号。这些构造也做 wait(2) 并且因此可能收割你的子进程。使用 waitpid 避免这样的情况。

waitpid PID, FLAGS

这个函数等待特定的子进程结束并在该进程死亡之后返回其 PID,如果没有其他的子进程时返回 -1,或者 FLAGS 里的标志声明的是非阻塞状态而该进程尚未退出,则返回 0。死亡的进程返回的状态存储在 $?,并且和 system 里描述的一样。要获取有效的标志值,那么你必须输入“:sys_wait_h”从 POSIX 里输入标签组。下面是一个等待所有挂起的僵死进程的非阻塞的例子:

   use POSIX ":sys_wait_h";
   do {
      $kid = waitpid(-1, &WNOHANG);
   } until $kid == -1;

在那些既没有实现 waitpid(2) 也没有实现 wait4(2) 系统调用的平台上,你可以声明的 FLAGS 只有 0。换句话说,你在那里可以等待一个特定的 PID,但是你不能在非阻塞模式里做这些事情。

在一些系统里,返回值为 -1 意味着该子进程被自动收割了,因为你设置了 $SIG{CHLD} = 'IGNORE'。

wantarray

如果当前正在执行的子过程在寻找列表数值,那么此函数返回真,否则返回假。如果调用环境需要的是一个标量,那么该函数返回一个定义了的假(""),而如果调用环境并不需要任何东西,(也就是说,空环境)那么返回一个未定义的假值(undef);

下面是它的典型用法的例子:

   return unless defined wantarray;      # 不需要干什么事情
   my @a = complex_calculation();
   return wantaray ? @a : \@a;

又见 caller。这个函数真是应该命名为“wantlist”,但是我们是在列表环境还叫数组环境的时候命名它的。(译注:数组英文词是“array”,列表英文词是“list”。)

warn LIST

warn

这个函数生成一条错误信息,象 die 那样把 LIST 打印到 STDERR,但是并不试图退出或者抛出一个例外。比如:


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

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

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