文档章节

perl学习笔记-----------------------(7)

henni_719
 henni_719
发布于 2017/04/22 17:13
字数 704
阅读 1
收藏 0
默认情况下,如果不指定文件句柄给print(或者printf,这里的内容对两者均适用),则默认会使用STDOUT。但这个默认属性,可以通过select 操作进行更改。如下:
select BEDROCK;
print “I hope Mr. Slate doesn’t find out about this.\n”;
print “Wilma!\n”;
一旦选择了(select)了某个文件句柄,则它将变成默认值。但这通常是一个坏主意,因为会扰乱程序的剩余部分,因此在完成时应当恢复以前的设置◆。默认情况,输出到文件句柄的内容会被缓存起来。将变量$|设置为1,将会在输出操作结束时会立刻清空文件句柄。

Perl 有两个内嵌的select 函数,均可在perlfunc 的帮助手册中找到。另一个select 函数有四参数,因此有时被称为“四参数的select”
select LOG;
$| = 1; #don’t keep LOG entries sitting in the buffer
select STDOUT;
#...time passes, babies learn to work, tectonic plates shift, and then … .
print LOG “This gets written to the LOG at once!\n”

如果系统的三个句柄STDIN, STDOUT, STDERR 重新打开时没有成功,Perl 会自动使用前一个。也就是说,只有Perl 成功的重新打开新的连接,否则是不会关闭以前的连接。至少,如果没有改变Perl 变量$^F,这是正确的。如果修改了,结果就不定了。

写一个程序,类似于cat,但保持输出的顺序关系。(某些系统的名字可能是tac。)如果运行此程序:./tac fred barneybetty, 输出将是文件betty 的内容,从最后一行到第一行,然后是barney, 最后是fred, 同样是从最后一行到第一行。(注意使用./确保调用的是你自己的程序,而非系统提供的)
#usr!/bin/-w perl
print reverse <>;

写一个程序,要求用户在不同的行中输入一些字符串,将此字符串打印出来,规则是:每一条占20 个字符宽度,右对齐。为了确保正确的输出,在开头打印出一串数字作为比较(帮助调试)。注意,不要犯19 个字符宽度的错误。例如,如果输入,hello, good-bye,则输出为:
#usr/bin/perl -w
print "Enter some lines,then press Ctrl-D:\n";
chomp(my @lines=<STDIN>);
print "123456789" x 7,"12345\n";
foreach(@lines)
{printf "%20s\n",$_;}
my $format="%20s\n"x @lines;
printf $format,@lines;

修改上一个程序,允许用户选择宽度,如,用户输入30,hello, good-bye(在不同的行中),则每一行的宽度为30。(提示:参阅第二章相应部分)。提示,如果选择的宽度太长,可以增加比较行的长度。
#usr!/bin/perl -w
print "what column width would you like?";
chomp(my $width=<STDIN>);
print "Enter some lines,then press Ctrl-D:\n";
chomp(my @lines=<STDIN>);
print "1234567890"x (($width+9)/10),"\n";
foreach(@lines){
printf "%${width}s\n",$_;
}

© 著作权归作者所有

共有 人打赏支持
henni_719
粉丝 2
博文 466
码字总数 343938
作品 0
信阳
QA/测试工程师
私信 提问
Per学习笔记[3]

Per学习笔记 1.子程序 (1)子程序的定义可以在程序的任意位置,且不需要在定义之前有任何声明。 (2)子程序的定义是全局的,可以在子程序中使用全局变量。 (3)所有的Perl 子程序都会返回值,在P...

wbf961127
2017/11/12
0
0
Perl学习笔记[2]

1.数组和列表:数组是由括号括起来的且其元素由逗号分隔开的列表。 (1)数组和列表的第一个索引是0,每次按1递增。 (2)数组和列表中的每一个元素都是一个独立的标量值,这些标量值的类型是...

wbf961127
2017/11/12
0
0
为 Java 程序员准备的 10 分钟 Perl 教程

这10分钟教程并不是Java和Perl的比较。目标是探索作为Java开发人员如何快速学习Perl。以下是一些从我的角度来看的关键笔记。 1.从基础开始 不像java,Perl不需要“main”方法作为入口点。要运...

oschina
2013/11/08
7.6K
17
xtrabackup学习笔记

wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.7/binary/tarball/percona-xtrabackup-2.4.7-Linux-x86_64.tar.gz yum -y install perl perl-devel libaio liba......

glassboy2009
2017/06/06
0
0
语言学习读书笔记PHP和asp.net编程语言哪个更有前途?

编程语言一直是学习计算机编程门专业的热门讨论话题,而我也选择了这个专业,入学一年了,马上面临着语言的选择问题,业余我需要选择一门编程语言作为重点研究对象,那么问题来了:到底是选择...

原创小博客
2018/05/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Python中判断字符串是否包含中文

Python import reRE = re.compile(u'[\u4e00-\u9fa5]', re.UNICODE)match = re.search(RE, str)if match is None:# 没有包含中文字符 参考 Python regular expressions return true/f......

亚林瓜子
4分钟前
0
0
《CNCF × Alibaba 云原生技术公开课》正式首播

《CNCF × Alibaba 云原生技术公开课》立即观看:点击立即观看 云原生最初来描述云上应用的典型架构与特性,随着容器、Kubernetes、Serverless、FaaS技术的演进,CNCF(云原生计算基金会)把...

mcy0425
4分钟前
0
0
网站漏洞如何修复网站程序问题

jeecms 最近被爆出高危网站漏洞,可以导致网站被上传webshell木马文件,受影响的版本是jeecms V6.0版本到jeecmsV7.0版本。该网站系统采用的是JAVA语言开发,数据库使用的是oracle,mysql,sql数...

网站安全
7分钟前
0
0
git 中“warning: CRLF will be replaced by LF in”解决方案

https://stackoverflow.com/questions/5834014/lf-will-be-replaced-by-crlf-in-git-what-is-that-and-is-it-important...

qwfys
12分钟前
0
0
Spring Boot配置ssl证书启用HTTPS协议

一 、点睛 SSL是为网络通信提供安全及数据完整性的一种安全协议,SSL在网络传输层对网络连接进行加密。SSL协议位于TCP/IP协议和各种应用层协议之间,为数据通信提供安全支持。 SSL协议分为两...

故久呵呵
14分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部