默认情况下, Perl 程序标准输入为键盘输入, 标准输出为终端显示器.
1. 标准输入
使用 可以获取用户从键盘输入的一行信息, Enter 键结束输入, 输入结果包含换行符通常会使用chomp函数去掉行尾的换行符, 使用标量接收键盘输入, 然后再做后续处理
print "please input :";
chomp
($line=<STDIN>);
print "your input is : $line\n";
2. 标准输出
perl 程序的标准输出为用户终端显示器,可以使用print, printf, say来输出
2.1 print
print 输出一行字符串, 末尾不添加换行符, 如果需要换行末尾需要添加\nprint 后跟双引号, 可以实现变量内插, 转义字符, 跟单引号则不会进行转换
print "hello\nworld\n";
print 'hello\nworld\n';
$name="zong";
@books=("java", "mysql");
print "name:$name, books:@books\n";
2.2 printf
printf 是格式化输出字符串,类似于shell 脚本, c语言的printf, 只不过perl语言支持变量内插, 所以printf 就显得没有那么重要了printf 通常用于格式化串宽度, 对齐方式, 浮点型数字四舍五入等如果输出%号, 需要使用%%语法: printf “包含占位符的字符串表达式”, 占位符参数…;
常用占位符:
占位符含义
%ns / %-ns字符串占位符, 宽度最少为n位, 对齐方式: 默认向右, 负号向左%nd / %-nd整数占位符, 宽度最少为n位, 对齐方式: 默认向右, 负号向左%n.mf / %-m.nf浮点型占位符, 整数宽度最少n位, 小数部分最多m位, 进行四舍五入, 对齐方式: 默认向右, 负号向左
for($i=1; $i<10; $i++){
for($j=1; $j<$i; $j++){
printf
"%-4s%-2d ", "$j*$i=", $i*$j;
}
print "\n";
}
printf
"%4s, %2s, s\n", "姓名", "年龄", "成绩";
printf
"%4s, -, %4.1f\n", "张小三", "20", "540.25";
printf
"%4s, -, %4.1f\n", "李四", "18", "606.55";
2.3 say
say 和print 比较类似, 也是输出一行字符串, 不同的是末尾会自动添加换行符, 无须手动添加\n双引号内科进行变量内插和转义字符转换, 单引号内不支持, 输出的是原字符串say 语句不是自带的, 需要引入模块: use feature qw(say);
use feature
qw(say);
$name="zong";
@books=("java", "mysql");
say"name:$name, books:@books";