什么是Perl内置的运算符/函数?
发布时间:2020-12-15 21:14:31 所属栏目:大数据 来源:网络整理
导读:我正在阅读Simon Cozens的 Beginning Perl,在第8章 – 子程序中,他指出“子程序”是用户功能,而打印,打开,分割等是内置的操作符或函数. 他们是什么?他们真的是内置的,语言固有的功能(如C的运算符大小),还是实际上是主模块的子程序/函数? 如果他们是子程序,
我正在阅读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(); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |