我想打印几个数组,输出元素的字段宽度为3,我想我可以使用printf,但是如果我使用printf那么我需要编写数组所有元素的格式,但数组很大.
例如
@array = (1,10,100,30); printf ("%3d %3d %3d %3d\n",$array[0],$array[1],$array[2],$array[3]);
我知道我可以使用循环打印元素,直到所有数组循环,但我认为这不是一个好主意.
有没有办法可以让我只描述一次元素的格式,然后自动应用于整个数组?
这样的事情?
printf ("%3d\n",@array);
谢谢
解决方法
这有两种方法:
>使用循环
printf "%3d ",$_ for @array; print "\n";
>使用x运算符构建可变长度模板
printf "%3d " x @array . "\n",@array;