use*_*116 6 arrays perl printf
我想打印几个数组,输出元素的字段宽度为3,我想我可以使用printf,但如果我使用printf那么我需要编写数组的所有元素的格式,但数组很大.
例如
@array = (1,10,100,30);
printf ("%3d %3d %3d %3d\n",$array[0],$array[1],$array[2],$array[3]);
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用循环打印元素,直到所有数组循环,但我认为这不是一个好主意.
有没有办法可以让我只描述一次元素的格式,然后自动应用于整个数组?
这样的事情?
printf ("%3d\n",@array);
Run Code Online (Sandbox Code Playgroud)
谢谢
mob*_*mob 11
这有两种方法:
使用循环
printf "%3d ", $_ for @array;
print "\n";
Run Code Online (Sandbox Code Playgroud)使用x运算符构建可变长度模板
printf "%3d " x @array . "\n", @array;
Run Code Online (Sandbox Code Playgroud)试试这个混合物:
print( map( {sprintf("%3d\n", $_)}, @array));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6868 次 |
| 最近记录: |