我知道在php中我可以做这样的事情
echo "{$this->method}";
我发誓有一种方法可以在perl
中完成更新 我想要做的是打印方法返回的标量。我有点希望像在php中一样在字符串中做,只因为我很懒:P。
答案 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";
用@{[]}
围绕一个函数打印出函数的值。有人曾经向我解释过这个,但我不记得为什么会这样。