什么是Perl内置的运算符/函数?

前端之家收集整理的这篇文章主要介绍了什么是Perl内置的运算符/函数?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在阅读Simon Cozens的 Beginning Perl,在第8章 – 子程序中,他指出“子程序”是用户功能,而打印,打开,分割等是内置的操作符或函数.

他们是什么?他们真的是内置的,语言固有的功能(如C的运算符大小),还是实际上是主模块的子程序/函数

如果他们是子程序,同时,为,除非等等也是子例程?操作符如何,–,eq等?

解决方法

打印,拆分不是子程序.他们不会产生次呼叫.他们甚至没有出现在符号表中(在main ::或其他方面,尽管你可以将它们称为CORE :: split等),并且不能获得对它们的代码的引用(尽管正在进行工作来创建代理当你想把它们视为子程序时,它们在CORE ::中为它们隐藏).他们就是操作符.
$perl -MO=Concise,-exec -e'sub f {} f()'
1  <0> enter 
2  <;> nextstate(main 2 -e:1) v:{
3  <0> pushmark s
4  <#> gv[*f] s
5  <1> entersub[t3] vKS/TARG,1      <--- sub call
6  <@> leave[1 ref] vKP/REFC
-e Syntax OK

$perl -MO=Concise,-exec -e'split /;/'
1  <0> enter 
2  <;> nextstate(main 1 -e:1) v:{
3  </> pushre(/";"/) s/64
4  <#> gvsv[*_] s
5  <$> const[IV 0] s
6  <@> split[t2] vK                 <--- not a sub call
7  <@> leave[1 ref] vKP/REFC
-e Syntax OK

$perl -MO=Concise,-exec -e'$x + $y'
1  <0> enter 
2  <;> nextstate(main 1 -e:1) v:{
3  <#> gvsv[*x] s
4  <#> gvsv[*y] s
5  <2> add[t3] vK/2                 <--- Just like this
6  <@> leave[1 ref] vKP/REFC
-e Syntax OK

他们以各种名称而闻名:

>内置函数
>功能
>内置
>命名运算符

大多数被认为是以下之一:

>列表运算符
>命名一元运算符

子程序通常被称为函数(因为它们在C和C中),因此“函数”是一个模糊的词.这个歧义似乎是你问题的基础.

至于while,for,除非等,它们是“流控制语句”使用的关键字

while (f()) { g() }

和“声明修饰符”

g() while f();

猜你在找的Perl相关文章