join 与sprintf联用问题请教

join 与sprintf联用问题请教

join 与sprintf联用问题请教
现有一个10个元素组成的数组@result_a。每个元素是16位浮点数。
另有一个字符变量$data。
现在想把这个变量和数组写到一个csv格式的文件中,同时把浮点数保留4位小数。
我知道要在数组的元素中使用逗号可以用join函数,要保留4位小数需要用sprintf函数。
但是如何把这两个联用呢?
我没有用join函数写的代码如下:

print FVAR (sprintf "%.4f,",$data);
for ($i=0; $i<=$#result_a; $i++) {
print FVAR (sprintf "%.4f,",$result_a[$i]);
}
print FVAR "\n";

有没有更简洁的写法?
请各位高手指点
join ',', map { sprintf .
join ',', map { sprintf "%.4f", $_ } @arr;
多谢.
好像还有点问题
Useless use of join or string in void context at test.pl line 14.
为什么会有这样的报错?
[quote]回复给 ribozyme :.
[quote]回复给 ribozyme : 好像还有点问题...[/quote]
因为你没有 print……
[quote]回复给 flw : [quo.
[quote]回复给 flw : 因为你没有 print…… [/quote]
也不一定用 print , join 会返回一个字符串,但是他那句没有对 join 返回的字符串做任何操作,所以 useless..,只要将 join 返回的字符串赋值给变量就可以消除那个警告,当然 print 也没有问题的




   

搞定了
多谢楼上几位的解释,确实如果对join的结果先赋值再print也可以的,如下:

my $a = join ", ", map{ sprintf "%.4f", $_ } @data;
print $a;