Perl语言程序设计_输入与输出

无论哪种编程语言,输入与输出都至关重要。个人感觉无论《Learning Perl》还是《Programming Perl》中,对输入与输出的讲解稍显随意,因此在这里整理相关要点,方便自己复习。

Perl语言中的输入与输出可以分成三类:从控制台输入或者输出;对文件进行输入或者输出操作;程序运行过程中输出报错或者警告信息。

来自控制台的输入与输出

读取标准输入

Perl语言中常用操作符<STDIN>实现对输入流的读取。在标量上下文中,<STDIN>会返回标准输入中的下一行,如果标准输入的下一行是文件结尾,那么<STDIN>会返回undef。因此,如果<STDIN>操作符被用在循环的判定条件中,那么当它读到文件结尾时会直接跳出循环。在列表上下文中,<STDIN>会返回一个列表,其中包含所有的输入内容,每个列表元素代表一行输入内容。

除了使用<STDIN>读取输入流之外,还可以使用钻石操作符<>完成读取操作。钻石操作符的优势在于,它能让程序在处理调用参数的时候,提供类似于Unix工具程序的功能。在两种情况下,钻石操作符会从标准输入流采集数据,一种是不提供任何调用参数的时候,另一种是把连字符(-)当作参数的时候。

用print输出

print操作符会读取后续列表中的所有元素,然后把每一项依次送到标准输出。在默认情况下,print操作符是不会往参数列表中添加任何符号的,换言之,print @arrray;这个指令会一个接一个地打印出数组中的所有元素,且各个元素之间不会有空格。如果希望数组的各个元素之间用空格隔开,那么可以采用数组的内插形式,例如print "@array";这种写法。此时,print操作符会打印一个字符串,而这个字符串是数组@array在双引号中内插形成的,它会在数组的各个元素(除了第一个元素)的前面加上一个空格。

一般来讲,为了节约时间、提高效率,程序会先将输出结果送到缓冲区。假如需要程序立刻输出,甚至可以放弃一部分效率的话,那么需要每次print时立刻刷新缓冲区。通常情况下,如果文件句柄连接的是终端,则Perl采用的是行缓冲模式,每逢换行符会将缓冲区的数据输出;如果文件句柄连接的是文件,则会等到缓冲区满或者程序结束的时候一起输出。如果要关掉缓冲模式,可以使用下列代码:

$| = 1;
$fh -> autoflush(1);

 由于print处理的是待打印的字符串列表,因此它的参数会在列表上下文中被执行。

用printf输出

在C语言中,我们可以使用printf函数来产生格式化过的输出结果。而在Perl语言中&#

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值