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中的输入输出流(三)的更多相关文章

  1. iostream/fstream中的输入输出流指针的绑定,tie函数的使用。

      为了兼容c语言的输入输出,c++里面采用tie将输入输出流经行绑定,所以cin/cout并不是独立的.当执行cin时,cout同时会被执行.反之亦然. by defalut,cin is tied ...

  2. Java中的输入输出流

    FileInputStream和FileOutputStream 创建含磁盘文件的输入 输出流对象. FileInputStream继承自InputStream,用于读取本地文件中的字节数据,由于所有 ...

  3. c++中IO输入输出流总结<二>

    1 文件的打开和关闭 1.1 定义流对象 ifsteam iflie;//文件输入流对象 ifsteam iflie;//文件输出流对象 fsteam iflie;//文件输入输出流对象 1.2 打开 ...

  4. java中基本输入输出流的解释(flush方法的使用)

    转自:http://fsz521job.itpub.net/post/5606/34827 网络程序的很大一部分是简单的输入输出,即从一个系统向另一个系统移动字节.字节就是字节,在很大程度上,读服务器 ...

  5. c++中IO输入输出流总结<一>

    1 io类图关系 1.1 简化形式 1.1.2补充 iostream: istream:从流中读取 ostream:写入到流 iosteram:读写流 fstream: ifstream:从文件读 o ...

  6. 【转】C语言中字符串输入的三种方法

    在网上看到,讲的还算详细,转过来学习一下...... ======================================================================= 使 ...

  7. Java基础 FileReader-FileWriter / 缓冲字符输入输出流 / 缓冲字节输入输出流 三种方式 进行文本文件的复制

    易错的地方: /** 出错的地方: * 1.缓冲流儿输出时,务必:flush();不然可能输出不尽! * 2. bw缓冲字符输出流,记得这里! bw.write(b,0,len); * 3.字符流不能 ...

  8. javaSE中的输入输出流---一个读取流,相应多个输出流。并且生成的碎片文件都有有序的编号

    <span style="font-size:18px;">package com.io.other.split; import java.io.File; impor ...

  9. java中 使用输入+输出流对对象序列化

    对象: 注意记得实现 Serializable package com.nf147.sim.entity; import java.io.Serializable; public class News ...

随机推荐

  1. 使用mimikatz获取和创建Windows凭据的工具和方法

    Mimikatz 下载地址 https://github.com/gentilkiwi/mimikatz/releases 本地凭据破解 以管理员身份运行(拿到shell提权后) mimikatz#p ...

  2. mac设置文件权限问题

    在使用mac时,经常我们遇到相关文件不能使用的情况,其实大多数情况都是,文件权限问题. 文件或目录的访问权限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而禁止对其做任何的更改操 ...

  3. iOS - ShareSDK第三方分享(图文和视频)和登录

    由于近期工作需要自己抽时间搞了一下第三方分享,这里使用的是shareSDK的第三方,在使用的过程中有一些心得和体会,特在此和大家分享一下~ 1.在经过将近一周时间的开发,终于搞定ios分享了. 2.由 ...

  4. jenkins遇到含中文路径的SVN地址时认证通不过

    安装插件:http://mirror.xmission.com/jenkins/plugins/subversion/2.5/subversion.hpi 可以解决svn中文目录问题 百度云:http ...

  5. python添加Windows环境变量

    1.cmd中添加方式 SET PATH=%PATH%;c:\Program Files (x86)\Wireshark 注:如上代码添加c:\Program Files (x86)\Wireshark ...

  6. vue--自定义指令进行验证(1)

    实例代码: <template> <div id="app" class="app"> <h3>{{msg}}</h3 ...

  7. Linux下实现秒级定时任务的两种方案

    Linux下实现秒级定时任务的两种方案(Crontab 每秒运行): 第一种方案,当然是写一个后台运行的脚本一直循环,然后每次循环sleep一段时间. while true ;do command s ...

  8. Saltstack之api

    Salt-API 1,htps证书 2,配置文件 3,验证.使用PAM验证 4,启动salt-api 安装salt-api yum -y install salt-api 创建用户 useradd - ...

  9. java 中的this

    this 关键字 1.在类的方法定义中使用this关键字 代表使用该方法的对象的引用 2.必须指出当前使用方法的对象是谁时 使用this 3.有时使用this可以处理方法中成员变量和参数重名的情况 4 ...

  10. 对于Python中回调函数的理解

    关于回调函数,网上有很多说明和各种解释,多数在尝试用语言描述.我认为,如果对各个角色之间的关系不清楚,如果没有相关的编程需求,那么语言便非常无力,很难理解. 这是360百科的解释: 在计算机程序设计中 ...