HoRain云--Perl格式化输出
HoRain云小助手个人主页 个人专栏: 《Linux 系列教程》《c语言教程》⛺️生活的理想就是为了理想的生活!⛳️ 推荐前些天发现了一个超棒的服务器购买网站性价比超高大内存超划算忍不住分享一下给大家。点击跳转到网站。专栏介绍专栏名称专栏介绍《C语言》本专栏主要撰写C干货内容和编程技巧让大家从底层了解C把更多的知识由抽象到简单通俗易懂。《网络协议》本专栏主要是注重从底层来给大家一步步剖析网络协议的奥秘一起解密网络协议在运行中协议的基本运行机制《docker容器精解篇》全面深入解析 docker 容器从基础到进阶涵盖原理、操作、实践案例助您精通 docker。《linux系列》本专栏主要撰写Linux干货内容从基础到进阶知识由抽象到简单通俗易懂帮你从新手小白到扫地僧。《python 系列》本专栏着重撰写Python相关的干货内容与编程技巧助力大家从底层去认识Python将更多复杂的知识由抽象转化为简单易懂的内容。《试题库》本专栏主要是发布一些考试和练习题库涵盖软考、HCIE、HRCE、CCNA等目录⛳️ 推荐专栏介绍Perl 格式化输出一、printf 函数直接输出二、sprintf 函数返回字符串三、格式说明符详解宽度与对齐控制四、format write 系统Perl特有五、print 简单输出六、实用示例汇总七、最佳实践建议八、常用第三方模块Perl 格式化输出Perl 提供了多种格式化输出的方法从简单的 print 到复杂的 format 系统。以下是主要方法和实用技巧一、printf函数直接输出printf用于直接按指定格式向标准输出或文件输出数据类似 C 语言的 printfprint 普通输出\n; printf 整数%d, 浮点数%.2f, 字符串%s\n, 100, 3.14159, Hello;基本语法printf [FILEHANDLE] FORMAT, LIST示例my $price 99.5; my $count 3; printf 商品单价$%.2f数量%d总价$%.2f\n, $price, $count, $price * $count;二、sprintf函数返回字符串sprintf功能与printf相同但返回值是格式化后的字符串而不是直接输出my $str sprintf(%-10s %5d %.2f, Apple, 10, 2.5); print $str\n; # Apple 10 2.50常见用途保存格式化结果构造动态消息生成日志记录示例my $date_tag sprintf(%04d-%02d-%02d, 2026, 4, 27); # 2026-04-27 my $formatted_num sprintf(%.4f, 3.14159265); # 3.1416三、格式说明符详解格式符含义示例%d十进制整数printf %d, 42→42%u无符号十进制整数printf %u, 100→100%o八进制整数printf %o, 64→100%x/%X十六进制 (大小写)printf %x, 255→ff%f/%F浮点数 (小数形式)printf %.2f, 3.14159→3.14%e/%E科学计数法printf %.2e, 1234→1.23e03%g/%G自动选择 f 或 eprintf %g, 0.0001→0.0001%s字符串printf %s, Hello→Hello%c单个字符printf %c, 65→A%%字面量百分号printf 50%%, 输出50%宽度与对齐控制格式说明示例%10s右对齐最小宽度10123→ 123%-10s左对齐最小宽度10123→123 %05d补零宽度5123→00123%.2f保留2位小数3.14159→3.14%8.2f总宽8小数2位123.456→123.46四、formatwrite系统Perl特有这是 Perl 独有的传统格式化系统适合生成报表# 定义格式模板 format STDOUT Name: Age: First Name, Last Name . Age . . # 设置当前记录变量 $~ MYFORMAT; # 关联格式名 # 写入数据 $name Alice Smith; $age 30; write(STDOUT);特点- 左对齐字段- 数值字段右对齐^- 多行输出时的填充配合$~当前格式、$/、$%等页眉控制变量使用五、print简单输出对于不复杂的情况可以直接用print# 基本用法 print Hello World\n; # 多个参数自动拼接 print 数字, , 相加结果是 , 35, \n; # 数字 10 # 带引号的数组打印 my names (Alice, Bob, Charlie); print 名单:\n for names; # 使用 读取并输出 while (STDIN) { print; }六、实用示例汇总#!/usr/bin/perl use strict; use warnings; # 1. 表格输出 printf %-15s %-10s %10s\n, 姓名, 年龄, 薪资; printf %-15s %-10s %10.2f\n, 张三, 30, 15000.50; printf %-15s %-10s %10.2f\n, 李四, 28, 12000.75; # 2. 日期时间格式化 my ($yr, $mo, $da) (2026, 4, 27); my $time_tag sprintf(%04d/%02d/%02d %02d:%02d:%02d, $yr, $mo, $da, 9, 23, 0); print 格式化时间$time_tag\n; # 3. 数字百分比 my $progress 0.75; printf 进度完成%.1f%%\n, $progress * 100; # 75.0% # 4. 货币格式化 my $price 1234.56; my $money sprintf($%10.2f, $price); # $ 1,234.56 print 价格$money\n;七、最佳实践建议场景推荐方法简单文本输出print固定格式输出到终端printf需要存储格式化结果sprintf生成正式报表/文档formatwrite复杂格式化需求第三方模块如Number::Format八、常用第三方模块use Number::Format; # 数字格式化 use Text::Table; # 表格生成 use Term::ANSIColor; # 彩色输出 use Log::Log4perl; # 日志格式化这些就是 Perl 中常用的格式化输出方法掌握它们可以让你的程序输出更加规范和专业❤️❤️❤️本人水平有限如有纰漏欢迎各位大佬评论批评指正如果觉得这篇文对你有帮助的话也请给个点赞、收藏下吧非常感谢! Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧