打印方法的返回

时间:2011-09-20 19:23:19

标签: perl

我知道在php中我可以做这样的事情

echo "{$this->method}";

我发誓有一种方法可以在perl

中完成

更新 我想要做的是打印方法返回的标量。我有点希望像在php中一样在字符串中做,只因为我很懒:P。

3 个答案:

答案 0 :(得分:5)

您是否只是想在双引号字符串中评估任意表达式?那么也许你在考虑

print "@{[$this->method]}";

在标量上下文中调用该方法也有一个技巧,但语法不太清晰。

print "${\($this->method)}";

答案 1 :(得分:3)

好吧,如果$this->method输出字符串或数字(如PHP,Perl可以在需要时自动将数字转换为字符串),那么您可以print $this->method . "\n";

如果$this->method输出数据结构(例如数组引用或哈希引用),则可以使用Data::Dumper查看数据结构。基本上,print Dumper($foo)是PHP var_dump($foo)的Perl等价物。

你准备做什么,确切地说?

答案 2 :(得分:1)

如果$this->method返回一个字符串,您可以这样做:

print $this->method . "\n";

没有引号。那将打印你的字符串。有时候,这会导致一个笨拙的陈述:

print "And we have " . $this->method . " and " . $that->method . " and " . $there->method . "\n";

在这种情况下,你可以使用一些编程技巧:

print "And we have @{[$this->method]} and @{[that->method]} and @{[$their->method]}\n";

@{[]}围绕一个函数打印出函数的值。有人曾经向我解释过这个,但我不记得为什么会这样。