是否可以使用perl
将打印语句存储到变量名中?
这是我的打印声明,
print "$fixed\n";
我想将此print语句输出存储在新变量中。有可能吗?
答案 0 :(得分:1)
只需分配给变量而不是打印它:
my $var = "$fixed\n";
对于更复杂的方案,请使用sprintf,例如:
my $var = sprintf("%02d - %s - %f", 1, $fixed, 3.1415);
答案 1 :(得分:1)
你已经看到接受的答案与你要求的顺序略有不同。你问:
如何使用perl?
将print语句输出存储在新变量名中
您已将某些数据存储在变量中,然后打印变量的内容。这具有相同的效果,但严格来说,它并不是你所要求的。
但它可以在Perl中做任何事情。包括配置标量变量以存储任何打印的数据。
#!/usr/bin/perl
use strict;
use warnings;
my $output;
# Call open(), giving it a reference to a scalar, instead of
# a filename.
open my $fh, '>', \$output or die $!;
# Now anything printed to that filehandle, is appended to
# your scalar variable.
print $fh "this is\na test\n";
# ... which you can print to STDOUT
print $output;
通过使用select()
制作标量文件句柄(默认输出文件句柄),可以更进一步。
select $fh;
print "Something";