【发布时间】:2011-01-18 01:36:02
【问题描述】:
如何在 printf 表达式中包含变量?
这是我的例子:
printf "%${cols}s", $_;
其中$cols 是列数
而$_ 是一个字符串。
该语句导致“无效转换”警告。
问题最终是我忘记咀嚼变量了。嘎。谢谢大家。
【问题讨论】:
-
能否请您发布完整的警告文本?
-
我认为问题在于我从用户(STDIN)那里获取了列数。这是完整的错误: invalid conversion in printf: "%\012" at column2 line 28,
line 3 (#1) (W printf) Perl 不理解给定的格式转换。参见 perfunc/sprintf。这是 $cols = 20。但它实际上可能是 $cols = "20" -
所以答案最终是我需要减少列数,因为它是来自 STDIN 的用户输入并且最后有一个换行符。
-
当您遇到此类问题时,请查看您尝试使用的字符串,以确保它是您认为的那样:
print "%${cols}s"。您的大部分编程时间可能会检查值以查看它们是否与您认为的一样。
标签: perl variables printf interpolation