Perl中的输入输出流(三)
Perl中读取标准输入:<STDIN>
foreach (<STDIN>) { print "I saw $_";}
钻石操作符<>:它的参数来源于@ARGV数组。
先检查@ARGV数组,如果为空,则从标准输入流输入。@ARGV的值可以来自命令行,也可以自己赋值。
./program fred barney betty #@ARGV的值便是命令行后的三个文件。
while (<>) { chomp; print "It's was $_ that I saw";}
Perl中的标准输出:print。输出多项时,可以通过加","来隔开,各自用双引号括起。
用print输出数组时。print @array; #会输出@array中所有元素,以空格分隔。相当于数组内插。
用printf格式化输出。%g/%d/%s/ printf “The items are:\n”.("%10s\n"x@items), @items; #定义多个%s
注意print加括号时是显式的函数调用,是列表上下文,返回列表。不加括号时,返回标量0/1。
print <>; 将输入直接输出。
文件句柄:代表Perl进程与I/O之间联系的名称,而不是说一个文件的名称,
Shell中的文件I/O流: ./program <dino >wilma #表示从文件dino输入,输出到wilma,Perl程序仍然是输入STDIN,
输出到STDOUT。剩下的部分由Shell来处理。
netstat | ./your_program 2>/tmp/my_errors #对STDERR重定向。
裸字(bareward)文件句柄: open CONFIG, '< dino'; #打开dino文件作为输入,文件句柄的操作符叫CONFIG。
Perl中默认打开的文件句柄是输入。'>'输出,'>>'追加在某个已经存在的文件后。注意将文件用单引号括起来。
close CONFIG; #关闭文件句柄
使用标量变量的文件句柄:一般先用词法变量my来定义。
my $rocks_fh;
open $rocks_fh, '>', 'file.txt'; #一般用后缀_fh来表示文件句柄。
close $rocks_fh
用标量变量作为句柄比裸字作为句柄更加方便,标量变量可以作为参数传递和数组哈希这些数据结构中的元素。
在Perl中可以使用die和warning来,分别结束当前Perl进程,和输出warning到STDERR。
die "Cannot create LOG flie:$!" #$!表示进行系统调用时的返回值。Perl默认会将Perl文件名和行号加在log中。
die "Cannot create LOG flie:$! \n" #加了换行符后,Perl不会再加入文件名和行号。
使用文件句柄来输入时:直接在<>括号中加入句柄名。
while (<PASSWD>) {......}
使用文件句柄来输出时:在print/printf 后加入文件句柄名。但是不要加逗号,否则会当做需要输出字符串的字数的一部分。或者直接用
花括号{}将文件句柄的名字括起来。
print {LOG} "HAHA";
改变默认的文件句柄,使用select关键字。 select LOG; select STDERR;
从Perl5.10开始,可以使用say来代替print。say会自动在输出的字符结束添加换行符。
Perl中的输入输出流(三)的更多相关文章
- iostream/fstream中的输入输出流指针的绑定,tie函数的使用。
为了兼容c语言的输入输出,c++里面采用tie将输入输出流经行绑定,所以cin/cout并不是独立的.当执行cin时,cout同时会被执行.反之亦然. by defalut,cin is tied ...
- Java中的输入输出流
FileInputStream和FileOutputStream 创建含磁盘文件的输入 输出流对象. FileInputStream继承自InputStream,用于读取本地文件中的字节数据,由于所有 ...
- c++中IO输入输出流总结<二>
1 文件的打开和关闭 1.1 定义流对象 ifsteam iflie;//文件输入流对象 ifsteam iflie;//文件输出流对象 fsteam iflie;//文件输入输出流对象 1.2 打开 ...
- java中基本输入输出流的解释(flush方法的使用)
转自:http://fsz521job.itpub.net/post/5606/34827 网络程序的很大一部分是简单的输入输出,即从一个系统向另一个系统移动字节.字节就是字节,在很大程度上,读服务器 ...
- c++中IO输入输出流总结<一>
1 io类图关系 1.1 简化形式 1.1.2补充 iostream: istream:从流中读取 ostream:写入到流 iosteram:读写流 fstream: ifstream:从文件读 o ...
- 【转】C语言中字符串输入的三种方法
在网上看到,讲的还算详细,转过来学习一下...... ======================================================================= 使 ...
- Java基础 FileReader-FileWriter / 缓冲字符输入输出流 / 缓冲字节输入输出流 三种方式 进行文本文件的复制
易错的地方: /** 出错的地方: * 1.缓冲流儿输出时,务必:flush();不然可能输出不尽! * 2. bw缓冲字符输出流,记得这里! bw.write(b,0,len); * 3.字符流不能 ...
- javaSE中的输入输出流---一个读取流,相应多个输出流。并且生成的碎片文件都有有序的编号
<span style="font-size:18px;">package com.io.other.split; import java.io.File; impor ...
- java中 使用输入+输出流对对象序列化
对象: 注意记得实现 Serializable package com.nf147.sim.entity; import java.io.Serializable; public class News ...
随机推荐
- Cracking the Coding Interview(String and array)
1.1实现一个算法判断一个字符串是否存在重复字符.如果不能利用另外的数据结构又该如何实现? My solution: /** *利用类似一个hash table的计数 *然后检查这个hash tabl ...
- [SharePoint 2010] SharePoint 2010 FBA 配置以及自定义首页
https://blogs.msdn.microsoft.com/kaevans/2010/07/09/sql-server-provider-for-claims-based-authenticat ...
- Android Google Maps API 网络服务用于网络定位、计算路线、获取经纬度、获取详细地址等
extends:http://blog.csdn.net/h7870181/article/details/12505883 Google Maps API 网络服务 官网地址 : https://d ...
- node path的几个路径问题
__dirname: 总是返回被执行的 js 所在文件夹的绝对路径 __filename: 总是返回被执行的 js 的绝对路径 process.cwd(): 总是返回运行 node 命令时所在的文件夹 ...
- 消息通讯之关于消息队列MQ必须了解的相关概念
目录 系统通讯方式有哪些? 消息队列的应用场景 消息队列通讯模型 常见的消息协议 AMQP MQTT ATOMP JMS 小结 系统通讯方式有哪些? RPC调用 RPC 全称 Remote Proce ...
- 基本类型互相之间转化可以用Covent类来实现。
一.C#类型的转换 在c#中类型的转换分两种:显式和隐式,基本的规则如下: 1.基类对象转化为子类对象,必须显式转换,规则:(类型名) 对象.2.值类型和引用类型的转换采用装箱(boxing)或拆箱( ...
- SequenceFile实例操作
HDFS API提供了一种二进制文件支持,直接将<key,value>对序列化到文件中,该文件格式是不能直接查看的,可以通过hadoop dfs -text命令查看,后面跟上Sequen ...
- HDU 5727 - Necklace - [全排列+二分图匹配][Hopcroft-Karp算法模板]
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=5727 Problem DescriptionSJX has 2*N magic gems. ...
- linux:帮助命令help、man、info
笔记内容如下: 1.内建命令与外部命令之分2.help , man , info命令的使用以及区别 内建命令与外部命令 有一些查看帮助的工具在内建命令与外建命令上是有区别对待的. 内建命令实际上是 s ...
- git 出现 refusing to merge unrelated histories 解决
如果出现refusing to merge unrelated histories,使用以下方法即可 git pull origin master --allow-unrelated-historie ...