找回密码
 注册
查看: 2401|回复: 0

perl语言中数组和printf

[复制链接]
发表于 2011-11-13 22:58:57 | 显示全部楼层 |阅读模式
通常,不会将数组作为参数传递给printf。因为数组可能含有任意数量的元素,而某个给定的格式字符串仅对固定数量的参
数有效:如果格式化字符串中有3 个格式符,则对应3 个元素。
但没有理由因为表达式可以是任意的,就不能指定一个格式字符串。这需要一些技巧才能使之正常工作,如果将格式存入
变量中可能会带来方便(特别是调试的时候):
my @items = qw( wilma dino pebbles );
my $format = “The items are:\n”. (“%10s\n”x @items);
## print“the format is >>$format<<\n”; #用于调试
printf $format, @items;
上述代码中使用了x 操作来确定字符串要重复的次数,此次数有@items 确定(此时是在标量context
中使用的)。本例中为3,因为有3 个元素,因此上述的格式字符串等同于“The items are:\n10s\n10s\n10s\n”。输出的每一个
元素占一行,右对齐,长度为10。相当酷,对吧?还有更好的方法,可以把它们结合起来使用:
printf“The items are:\n”. (“%10s\n”x @items), @items;
本例中使用了@items 两次,一次在标量context 中,取其元素的个数,一次在列表context 中取其元素。context 是相当重要
的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|生物统计家园 网站价格

GMT+8, 2024-11-23 17:27 , Processed in 0.029755 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表