我想使用数组作为参数来调用函数:
const x = ['p0', 'p1', 'p2'];
call_me(x[0], x[1], x[2]); // I don't like it
function call_me (param0, param1, param2 ) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
有路过的内容的一种更好的方式x进入call_me()?
我想知道当我使用反射来调用一个名为i的字符串的方法时会发生什么:
my $foo = Foo->new();
my $method = 'myMethod';
$foo->$method();
Run Code Online (Sandbox Code Playgroud)
比原生呼叫慢约20%:
$foo->myMethod();
Run Code Online (Sandbox Code Playgroud)
有关如何实现perl反射的文档的任何指针都会有所帮助.
谢谢.
我有一些PPI模块的问题:
假设我有Foo.pm:
package Foo;
sub foo0 { 1; }
sub foo1 { 1; }
sub foo2 { 1; }
sub foo3 { 1; }
1;
Run Code Online (Sandbox Code Playgroud)
我想用PPI来获得所有潜艇:
#!/usr/bin/env perl
use PPI;
my $filename = shift;
my $Document = PPI::Document->new($filename);
my $subs = $Document->find('PPI::Statement::Sub');
warn $#$subs;
Run Code Online (Sandbox Code Playgroud)
结果我得到'3'这是正确的.
但当我在Foo.pm中的一个潜艇称为'sub vN ...'时,其中N是一个数字,fe:
sub v1foo {}
Run Code Online (Sandbox Code Playgroud)
要么
sub v3bar {}
Run Code Online (Sandbox Code Playgroud)
或者干脆
sub v2 {}
Run Code Online (Sandbox Code Playgroud)
PPI :: Document find似乎打破了解析并只返回已经找到的subs.所以,如果我修改Foo:
package Foo;
sub foo0 { 1; }
sub foo1 { 1; }
sub v2xx { 1; } …Run Code Online (Sandbox Code Playgroud) 如何在使用包时传递一些参数,例如:
use Test::More tests => 21;
Run Code Online (Sandbox Code Playgroud)
我无法找到有关此专长的任何有价值的文件.传递这些论点是否有任何利弊?
perl ×3
arguments ×1
arrays ×1
call ×1
function ×1
javascript ×1
packages ×1
parsing ×1
performance ×1
ppi ×1
reflection ×1