使用Printf (Perl)将输出输出到文件



我有现有的脚本和脚本的一部分张贴在这里下面。我想把结果打印到文件中。结果打印在Linux屏幕会话上我的问题是如何将def打印到文件而不是显示在屏幕上

my $def=printf '/opt/bin/run server=%s os="%s" version=%s application=%s',
$server, $os, $version, $application;       
print $def."n" ;

如果您查看print()的文档,您将看到它采用以下形式:

printf FILEHANDLE FORMAT, LIST
printf FILEHANDLE
printf FORMAT, LIST
print

您当前正在使用列表中的第三个表单。如果你想printf()的输出到一个文件,你可以切换到第一个表单。

# open a filehandle for your file
open my $fh, '>', $your_file_name or die "$your_file_name: $!";
printf $fh '/opt/bin/run server=%s os="%s" version=%s application=%s',
$server, $os, $version, $application;

注意(和print()一样)文件句柄和其他参数之间没有逗号。

这是一个例子,如何写一个字符串到文件:

use strict;
use warnings;
my $str = 'hello world';
my $fn = 'hello.txt';
open ( my $fh, '>', $fn ) or die "Could not open file '$fn': $!";
print $fh $str;
close $fh;

最新更新