Perl的输出:print、say和printf、sprintf
print、printf和say都可以输出信息。print和say类似,print不自带换行符,say自带换行符,但要使用say,必须写use语句use 5.010;
,printf像C语言的printf一样,可以定制输出格式,不过我这perl似乎不支持printf,一用就报错,不知道为什么。它们有返回值:如果输出成功,就返回1。
注意perl中有上下文的概念,这几个输出操作也同样有上下文环境:列表上下文。
@arr=qw(hello world);
print "hello world","\n";
print "hello world\n";
print @arr; # 输出helloworld(没空格)
print "@arr"; # 输出hello world(有空格)
use 5.010;
say "hello world!"; # 自带换行符
这些本没有什么可解释的,但是print/say可以以函数格式(print(args)
/say(args)
)进行输出,这时候有个陷阱需要注意。
print(3+4)*4;
这个返回7,而不是28。这是怎么计算的?
Perl中很多时候是可以省略括号的,这往往让我们忘记括号的归属。而Perl中又有上下文的概念,在不同上下文执行同一个操作的结果是不一样的。在这里:
- print不加括号的时候,它需求的参数是一个列表上下文,它后面的所有内容都会被print输出
- print加括号的时候,它只会输出括号中的内容
所以,上面的语句等价于:
(print(3+4))*4
它先执行print(7)
,然后拿到print的返回值1,将其乘以4,由于没有赋值给其它变量,所以这个乘法的结果被丢弃。
如果将上面赋值给一个变量:
$num = print(3+4)*4;
则$num
的值将为4。
如果想要输出(3+4)*4=28
的结果,可以将它们放在一个括号里,或者在(3+4)
的括号前加一个+
号,它表示让它后面的表达式作为函数的参数,相当于加个括号。所以,下面两个是等价的语句:
print ((3+4)*4);
print +(3+4)*4;
另外,由于print/say不使用括号的时候,它们会输出其后面的列表。所以有以下技巧:
- 像cat命令一样,直接输出文件内容:
print <>;
- 像sort命令一样,排序文件内容:
print sort <>;
转载于:https://www.cnblogs.com/f-ck-need-u/p/9557517.html
Perl的输出:print、say和printf、sprintf相关推荐
- printf, sprintf - 转换成指定格式的输出结果.
名称: printf, sprintf - 转换成指定格式的输出结果. 语法: void printf( string format, ... ); string sprintf( string fo ...
- scanf printf sprintf fprintf
都是C语言中的函数,但C++保留了这些函数,在头文件iostream中声明了. 1 scanf(格式控制,输出列表) printf (格式控制,输出列表) 举例: #include <iostr ...
- C语言中的格式化打印printf/sprintf以及嵌入式printf重定向进行DEBUG
一.printf描述 在C语言中,打印函数主要包括printf/sprintf/fprintf/snprintf等等,目的是将"给定的内容"按照"指定的格式"输 ...
- 【Shell牛客刷题系列】SHELL21 格式化输出:来看个printf命令的小彩蛋~
该系列是基于牛客Shell题库,针对具体题目进行查漏补缺,学习相应的命令. 刷题链接:牛客题霸-Shell篇. 该系列文章都放到专栏下,专栏链接为:<专栏:Shell>.欢迎关注专栏~ 本 ...
- python input和print,Python基础——输出[print()]与输入[input()]
Python版本:3.6.2 操作系统:Windows 作者:SmallWZQ Python是一种面向对象的解释型计算机程序设计语言,Python的特点是"简单"." ...
- python输出多行对齐_如何用python3输出print对齐?
python中的函数相信大家都不陌生,提起print很多人都要举手回答,说我知道!这个函数也是比较常见的,所以小编想给大家多补充一点新的知识.内容不是很多,也算是偏基础类的知识,需要大家牢固掌握这个知 ...
- python输入变量输出常量_Python输入input、输出print
1.输入input input是用于输入数据给变量.通过键盘输入的是字符串,如果需要其他格式,需要做转换.比如int.float类型数据,int() 如下是一个例子: 如果a不进行int转换,那么输入 ...
- python输入格式一个不带小数点_Python输入input、输出print
1.输入input input是用于输入数据给变量.通过键盘输入的是字符串,如果需要其他格式,需要做转换.比如int.float类型数据,int() 如下是一个例子: 如果a不进行int转换,那么输入 ...
- python输出print(x+y)_Python 输出 运算 调用
1.print 输出 (默认print 是自带换行# 换行输出print(a) print(b) print(a, end="\n") print(b, end="\n ...
最新文章
- Matplotlib绘图库初探
- lvdt 运放全波整流接线方式_常见的几种二极管整流电路解析
- 【牛客 - 331G】炫酷数字(反素数打表 或 扩展埃式筛法,结论)
- MyEclipes 设置代码自动提示
- 给图片下方加水印_别再看不起美图秀秀啦,想要做长图,批量加水印,用它超级方便...
- 华北水利水电大学计算机实验报告怎么写,考试类:华北水利水电大学C语言实验报告.doc...
- crio电压采集 labview_基于LabVIEW和CompactRIO开发的EDM过程控制器
- 服务器安装系统h730,戴尔H330_H730阵列卡驱动
- 交换机组播风暴_cisco 交换机端口广播风暴设置(非常详细)
- 编码,隐匿在计算机软硬件背后的语言读书笔记(1)
- 使用python opencv批量对贴图进行除透明边并压缩
- 最新 抖音 X-Gorgon 0408 和8408 算法定位查找过程笔记 最新抖音xg算法13.3版本
- 金融风控中英文术语手册(银行_消费金融信贷业务)_version5
- 用地预审与选址意见书
- 位图文件, JPG格式,PNG格式
- 高级数据操作--连接查询
- SAF(Storage Access Framework)使用攻略
- iw在java中什么意思,请问程序里piw和iw有什么区别
- oracle监听程序的配置
- OpenCPN + Ubuntu 18.04 源码编译 + Codeblocks 调试 + wxFormBuilder 安装