2017-04-04 45 views
3

如何引用print如何在Perl中引用打印?

我想:

my $p = \&print; 

但它抛出:

未定义的子程序&main::print

+1

你有什么打算用'$ p'做什么? – toolic

+1

'perl -E'my $ p = sub {print @_}; $ p - >(“你好\ n”)'' –

+0

传递,修改和调用。 – ceving

回答

5

这将会是\&CORE::print,但perldoc CORE lists print as not available

你可以只环绕它一个匿名子,虽然转发ARGS:

my $p = sub { print @_ }; 
$p->("hi"); 

另外,原来的方法SANS反斜杠工作在精细Perl 6

my $p = &print; $p("hi") 
+0

Re“*列出print不可用*”,只能获得可由子例程复制的操作符的引用,所以无法获取对“print”操作符的引用(因为其可选的前导块/ glob )不仅仅是你可以得到对加法运算符的引用(因为它是一个中缀运算符)。 – ikegami

+1

这也适用于Perl 6:'my&add =&infix:<+>;说加2,5'; #OUTPUT:7' –

+0

不确定你想要完成什么,但很可能会造成混淆。至少,你答案中的一点是。 – ikegami