小编Her*_*nge的帖子

Perl运算符:$ | ++; 美元符号管加上加号

我正在研究已经发布的perl代码的新版本,并找到了该行:

$|++;
Run Code Online (Sandbox Code Playgroud)

AFAIK,$ | 与管道相关,如本链接所述,我理解这一点,但我无法弄清楚++(加上加号)在这里意味着什么.

先感谢您.

编辑: 在此链接中找到答案:

简而言之:它强制在下一个语句之前打印(刷新)到您的控制台,以防脚本太快.

有时,如果将print语句放在一个非常快速运行的循环中,则在程序终止之前,您将看不到print语句的输出.有时,你根本看不到输出.解决这个问题的方法是在每个print语句后"刷新"输出缓冲区; 这可以使用以下命令在perl中执行:

$|++;
Run Code Online (Sandbox Code Playgroud)

[更新]正如r指出的那样.施瓦茨,我错过了; 上面的命令会导致print在下一个输出之前刷新缓冲区.

perl expression

16
推荐指数
4
解决办法
6440
查看次数

erlang phylosophy:我应该让用户处理错误的输入吗?

情况就是这样:

% print/1: Prints out the integers between 1 and N
print(0) ->   io:format("~w~n", [0]);
print(N) when is_integer(N) -> 
          io:format("~w~n", [N]),
          print(N - 1).
Run Code Online (Sandbox Code Playgroud)

如果用户输入非整数,则会发生以下情况:

11> effects:print('alfalfa').
** exception error: no function clause matching effects:print(alfalfa)
Run Code Online (Sandbox Code Playgroud)

关于哲学:我应该以这种方式纠正我的程序,以便"捕获所有"的输入?

% print/1: Prints out the integers between 1 and N
print(0) ->   io:format("~w~n", [0]);
print(N) when is_integer(N) -> 
          io:format("~w~n", [N]),
          print(N - 1).
% Last Line added:
print(_Other) -> false.
Run Code Online (Sandbox Code Playgroud)

我是二郎的新手.是否有一些处理这个问题的惯例?

谢谢!

erlang

4
推荐指数
1
解决办法
149
查看次数

标签 统计

erlang ×1

expression ×1

perl ×1