perl学习之I/O基础
1.从标准输入进行输入<STDIN>
2.从钻石操作符进行输入<>
3.参数调用@ARGV
4.向标准输出进行输出
5.用printf进行格式化输出
1.<STDIN>
while(<STDIN>)
{
print "I saw $_";
}
while(defined($_ = <STDIN>)){
print "I saw $_";
}
NOTE:行输入操作符<STDIN>和Perl最喜欢的缺省变量($_)之间没有任何关系。
foreach (<STDIN>){
print "I saw $_";
}
这个输入到底何时结束呢?????列表输入结束完才进入循环。
foreach 的缺省控制变量是$_。
foreach 循环中,行输入操作符用在列表上下文中(因为foreach只能遍历一个列表)。所以他必须读入所有的输入,然后循环才能开始执行。
2.<>
while(defined($line = <>)){
chomp($line);
print "It was $line that I saw!\n";
}
while(<>){
chomp;
print "It was $_ that I saw!\n";
}
<>钻石操作符通常用来处理整个输入,所以如果你的程序中不止一次使用了它,那么一般来说这是一个错误。
<>钻石操作符读取输入,但输入本身(一般在缺省情况下)是在$_中。
<>钻石操作符会自动继续下一个文件,很像你对cat或其他标准工具所期望的那样。
2.参数调用
@ARGV当程序启动后,已经被填入了调用参数的完整列表。
可以用shift对@ARGV操作。
3.向标准输出进行输出
print 操作符取一个值得列表,然后把每一个条目(当然作为字符串)按顺序发送到标准输出,一个接一个。它不添加额外的字符在条目的前面、后面或两个条目之间。
它不会(缺省地)添加任何东西,但这个缺省行为可以改变。
print @array; #打印条目的一个列表
print "@array"; #打印一个字符串(包含一个替换的数组) 《===这个经常用,但没看懂。
print 是寻找一个字符串列表来打印,它的参数计算就在列表上下文中进行。<>钻石操作符(作为一种特殊的行输入操作符)在列表上下文中会返回一个行的列表。
所以print 和 <>可以配合使用。
eg: print <> ;
print sort <>;
如果print的调用看起来像一个函数调用,那么它就是个函数调用。
eg: print (2+3);
print (2+3)*4 ###值为4,打印出5。
规则:“如果它看起来像一个函数调用,那么它就是一个函数调用”适用于Perl的所有列表函数,而不仅仅是print。
4.用printf格式化输出
5.数组与printf
不能用一个数组作为printf的参数,数组可以含有任意数目的条目,一个给定的格式字符串只能与一定数目的条目一起工作。
但格式字符串可以动态给出,利用数组。
最新文章
- JAVA安全模型
- Nodejs:Path对象
- 你真的已经搞懂JavaScript了吗?
- iOS开发初级课程
- 找到的两个php爬虫,分享一下
- Jsp的内置标签和jstl标签
- JavaScript引用类型之Array数组的toString()和valueof()方法的区别
- jQuery的理论基础
- Linux工具参考篇(网摘)
- Atlas框架介绍集成(一)
- PHP-无限级分类
- Git知识总览(二) git常用命令概览
- jq实现上传头像并实时预览功能
- css属性详解
- 电子科技大学实验中学PK赛(二)比赛题解
- 关于REST API设计的文章整理
- Scala界面事件处理编程实战详解.
- 20155313 杨瀚 《网络对抗技术》实验八 Web基础
- DataGridView控件使用大全说明-各种常用操作与高级操作
- mui做的苹果app生成ipa后放到自己的网站上让人下载安装
热门文章
- Php对象及对象特性篇
- [WOJ3010] 骰子
- Points on Plane Codeforces - 576C
- 1-28Map简介
- 云服务中IaaS、PaaS、SaaS的区别
- 错误之Illegal mix of collations for operation &#39;like&#39;
- B. Apple Tree 暴力 + 数学
- Ubuntu 解决E: 无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用)
- if __FILE__ == $0 end
- 蜥蜴-DInic