如何在运行时获取子例程的签名?

问题描述

Perl通过CORE::prototype提供了一个API,使您可以获得原型。 Sub::Util进一步说明了这一点,$code是使用subs的已记录方法

Sub::Util::prototype

返回给定的CORE::prototype引用的原型(如果有)作为字符串。这与def ways(n): tuple_sum_set = set() for i in range(1,n+1): for j in range(1,n+1): for k in range(1,n+1): if i + j + k == n and len(set([i,j,k])) == 3: tuple_sum_set.add(tuple(sorted([i,k]))) print(tuple_sum_set) return len(tuple_sum_set) print(ways(8)) 运算符相同;此处包含它只是为了与其他功能保持对称和完整性。

但是,在运行时如何获得signatures方面,我看不到任何东西吗? perl可以使它可用吗?

解决方法

这是非常间接的,但是要解析子项并解析签名代码。

RewriteCond %{QUERY_STRING} ^id=([^&]*)&resourcePath=([^&]*)$ [NC]
RewriteRule "(.*)" "$1?vendorId=%1&vendorResourcePath=%2"
,

由于目前无法进行传统参数解析(my ($foo,$bar) = @_;)的相同原因,目前尚无法实现:这是子例程的内部。

曾经有人建议添加这样的东西,但是目前看来不太可能。

,

来自irc.freenode.net/#perl,

15:03 < Grinnz> there's no perl level api for that

这几乎是一个perl消音器。他向我指出了this work from Nov 2019,它从“签名自省API”的路径开始。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...