如何使用perl将print语句输出存储在新变量名中?

时间:2017-06-23 05:58:22

标签: perl

是否可以使用perl将打印语句存储到变量名中?

这是我的打印声明,

print "$fixed\n";

我想将此print语句输出存储在新变量中。有可能吗?

2 个答案:

答案 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";