![]() |
1
16
Sub返回Sub作为 科德夫 以下内容:
可以使用执行任意文本
注意这是 非常危险 如果您正在评估从用户输入中提取的任何内容,并且通常是一个糟糕的实践,因为您通常可以在coderef中定义代码,如前面的示例所示。 您可以使用 state variable (在Perl5.10中是新的),或者变量的作用域高于Sub本身,作为 closure :
|
![]() |
2
7
返回子例程引用。 下面是一个简单的例子,它创建了一个值上关闭的子引用:
您还可以使用这样的命名SUB:
你可以使用
几乎任何你想用字符串eval做的事情都可以用闭包来实现。 |
![]() |
3
5
通过使用
5.10介绍 state variables .
在Perl执行文本时使用
执行任意字符串 将 打开巨大的安全漏洞。 |
![]() |
4
5
您可以创建匿名子例程并通过引用访问它们;当然,可以将此引用分配给标量:
或从另一个子例程返回
如果需要存储状态,可以使用外部作用域中定义的词法变量创建闭包,如:
您可以用运行代码 eval |
![]() |
Manny · 如何比较Perl中的字符串? 2 年前 |
![]() |
BioRod · 我不能用Perl打印键和值 2 年前 |
![]() |
user17227456 · Perl CLI代码无法追加字符串行 2 年前 |
![]() |
LearnToBeBetter · 读取文件,搜索字符串,打印字符串 3 年前 |
![]() |
KJ7LNW · 一些波斯语文本的宽字符印刷,但其他文本则没有 3 年前 |
![]() |
con · 如何搜索大型数据结构并返回一系列给出特定值的键/数组? 3 年前 |
![]() |
Pranay Nanda · 使用regex解析许可证文件 7 年前 |