如何实现函数调用的内插

如何实现函数调用的内插

use POSIX;
sub str2t($) {
        my @m = split /[\-\s:]+/, $_[0];
            @m[0, 1] = ($m[0] - 1900, --$m[1]);
            print "@m\n";
            $tmp3= reverse @m ;
            print "$tmp3 \n";
                mktime reverse @m
            }
          $t1 = '2007-06-08 12:00:00' ;
          $t2 = '2007-05-30 12:00:00' ;
          $tmp1 = str2t($t1);
          $tmp2 = str2t($t2);
          printf %s,"$tmp1\n";
          print "$tmp2\n";
          printf %s,"str2t($t1)\n";
          printf %s,"str2t($t2)\n";
          $tmp = str2t($t1) - str2t($t2) ;
          print "$tmp \n";

红色部分两句,如何实现函数的调用啊??
printf %s, str2t($t1)."\n";
print str2t($t1), "\n";不就行了吗,怎么转了好几个弯

不行啊,我是加了换行符号,所以才存在转义的问题啊,
bood 的是个好办法,是可以解决这个问题,但是有没有办法,在“”里面实现调用了。


[Copy to clipboard] [ - ]
CODE:
$ cat ttt.pl
print "foo: [${ \&foo() }]\n";
print "bar: [@{ [&bar()] }]\n";

sub foo {
    return "single message";
}

sub bar {
    return ("hello", "world");
}
$ ./ttt.pl
foo: [single message]
bar: [hello world]
$

确实可行,谢谢“放驴娃”
原来是采用了对传回的值进行引用处理,然后再还原的操作。。。


QUOTE:
原帖由 perljoker 于 2007-10-18 12:59 发表
原来是采用了对传回的值进行引用处理,然后再还原的操作。。。

对。正是这样。
这是变通的处理方法,Perl6 里面就不用这么丑陋了。


QUOTE:
print "bar: [@{ [&bar()] }]\n";

这个不是很懂,可以具体解释一下么?