use Rcon::HL2;
my $rcon = Rcon::HL2->new(
hostname => "myserverhere",
password => "omgawesomepassword",
);
当我运行它时,它会返回:
0CPU In Out Uptime Users FPS Players
0.00 0.00 0.00 514 9 956.02 0
最初,我希望它只输出数字 - 0.00 0.00 0.00 514 9 956.02 0
,可能用制表符或逗号分隔。
任何人都可以帮我解决这个问题吗? 我环顾四周,弄乱切割和sed等等,但似乎找不到合适的方式来完成它。理想情况下,我希望能够运行myscript.perl -cpu或myscript.pl -in,etcetc来返回那些位,但我想如果有人能告诉我如何操作输出我可以弄清楚其余的
谢谢!
答案 0 :(得分:3)
您可以使用substitution operator (s///)用逗号替换所有空格,例如:
use warnings;
use strict;
my $out = '0.00 0.00 0.00 514 9 956.02 0';
$out =~ s/\s+/,/g;
print "$out\n";
__END__
0.00,0.00,0.00,514,9,956.02,0
答案 1 :(得分:0)
听起来您正在尝试更改模块输出格式。最好的方法是从另一个脚本调用它,这样你就可以将它作为输入,然后根据需要进行修改。 Perl有输出缓冲但它应该被称为输出缓存,因为它一旦创建它就不能真正修改流。
实施例。 - 内部rconhl2.pl
use Rcon::HL2;
my $rcon = Rcon::HL2->new(
hostname => $ARGV[0],
password => $ARGV[1],
);
...
实施例。 - 内部myscript.pl
...
$var = `perl rconhl2.pl $param1 $param2`;
$var =~ s/s+/,/;
...
这些方面的东西。当你需要满足规范时,任何不返回字符串的模块都会令人沮丧。祝你好运。