文件句柄

文件句柄就是Perl程序里的某个名 称,代表Perl进程与外界之间的输入/输出联系。文件句柄的命名和Perl中其它变量命名没有差别(数字、下划线、字母构成,字母、下划线开头),因没 有任何的前置字符,容易和一些保留字或者"标签"互相混淆,Larry建议大家用大写字母来标表示文件句柄(否则会报错:Unquoted string "xxx" may clash with future reserved word at yyy line zzz.)。

Perl保留了6个有特殊用途的文件句柄名称:STDIN STDOUT STDERR DATA ARGV和ARGVOUT。用户自定义的文件句柄不得与这6个文件句柄重名(书不是这么写的,纯属个人理解,Perl的原则就是减少不必要的限制,但你也不应该滥用这份自由)。

打开文件句柄

使用open操作符告诉操作系统,你要打开的文件。例如:

$dino = <STDIN>;  #可以在此输入要读入的文件的路径,例如$dino = 'D:\sequence.txt';

$fred = <STDIN>; #可以在此输入要输出的文件的路径,例如$fred = 'D:\result.txt';

open CONFIG,"$dino";   #打开一个叫CONFIG的句柄,并读入从$dino这个路径输入的文件(外部文件,一般为txt格式)

open CONFIG,"<$dino";   #和上一句的效果相同,小于符号说明这个这个句柄是用来输入的

open BEDROCK,">$fred";  #大于符号是用来创建一个新文件并将文件保存到从$fred获得的路径下,如文件已经存在,原来的内容将被覆盖

open LOG, ">>logfile";    # 如果logfile已存在,新内容将追加到原文件的后面;如果不存在,将创建新文件

使用文件句柄

所谓的"行输入"操作符是由两部分组成的:一对尖括号(真正的"行输入"操作符)以及里面用来输入的文件句柄。

例如我们要把从CONFIG读入的信息从BEDROCK输出,即把D盘中sequence.txt这个文件里的内容放到vector.txt这个文件中。可以这样做:

print BEDROCK <CONFIG>; #我的理解是"<文件句柄名称>"相当于一个标量(如$abc)或者一个数组(如@array),可以直接操作。

转载于:https://www.cnblogs.com/zeushuang/archive/2012/11/15/2772033.html

perl中的文件句柄相关推荐

  1. 关于perl中的反勾号(``),system和exec

    关于perl中的反勾号(``),system和exec 在perl中反勾号(``),system和exec都用来执行命令,这篇文章将给我们介绍它们各自的使用方法,联系,以及区别. 一.使用方法 1.  ...

  2. perl中的反勾号(``),system和exec

    在perl中反勾号(``),system和exec都用来执行命令,这篇文章将给我们介绍它们各自的使用方法,联系,以及区别. 一.使用方法 1.       反勾号(``) 首先,我们有命令输入操作符, ...

  3. Perl中的单行凝视和多行凝视

    同其它大多数编程语言一样.Perl中的单行凝视也是#开头.比如: #print "Hello,World!"; 但多行凝视.不同的语言有不同的凝视方式,比方说: Java,C/C+ ...

  4. XML::Simple与Data::Dumper在Perl中的使用

    在perl中使用XML::Simple与Data::Dumper对XML文件进行操作. foo.xml文件,内容如下: <servers>        <server>   ...

  5. Perl 中的正则表达式

    9 Perl 中的正则表达式正则表达式的三种形式 正则表达式中的常用模式 正则表达式的 8 大原则 正则表达式是 Perl 语言的一大特色,也是 Perl 程序中的一点难点,不过如果大家能够很好的掌握 ...

  6. php 调用 perl,perl中如何调用R语言

    以下是从网上收集的从perl中调用R的方法: 1 直接用system()命令 比如有个test.R程序,可以通过下面的方式调用: system("R 2 安装模块RSperl 该模块的具体介 ...

  7. 强大的Perl中的正则

    转载本站文章请注明,转载自:扶凯[http://www.php-oa.com] 本文链接: http://www.php-oa.com/2008/12/20/power-perl.html Perl的 ...

  8. ubuntu18.0.4 不能下载 libgd2-dev(ubuntu 20.04 安装perl 中GD 模块失败的解决办法)

    ubuntu18.0.4 不能下载 libgd2-dev 一.错误信息: Unable to locate package libgd2-dev 二.原因 没有对应源 到 https://packag ...

  9. linux perl 单例模式,Perl脚本学习经验(三)--Perl中ftp的使用

    使用use Net::FTP; Demo: my $Server = '192.168.1.1'; my $User = 'admin'; my $Password = 'admin'; my $ft ...

最新文章

  1. Java中的初始化顺序
  2. Ubuntu下默认使用dash而非bash
  3. 我9月底的SAP Spartacus开发进展情况
  4. python协程处理海量文件_python_实战篇_使用协程gevent模块实现多任务copyA文件夹到B文件夹...
  5. CCIE理论-第九篇-IPV6详细介绍
  6. 《我和他的结婚录像和相册集》的快速传播
  7. 一种页面数据错误输入提示方法 【转】
  8. Spring MVC文件上传示例教程 - 单个和多个文件
  9. Geodatabase概述(翻译)
  10. VMware专家:行动起来 狙击云炒作
  11. 2010.6.20 OA项目组一周工作报告
  12. 服务器上安装python anaconda最简明教程
  13. SPSS问卷中的人口学变量是否要用?以及如何选用?【SPSS 065期】
  14. 16位LED恒流源芯片TC5020A,32*128点阵屏驱动函数
  15. 最长回文子串 马拉车算法
  16. 《学习的本质》读后感
  17. Fbank特征与MFCC特征解析
  18. RT-Thread学习笔记——信号量
  19. Matlab解方程, 等到数字解和解析式解
  20. PyQt5 实现矩阵计算器

热门文章

  1. dockerfile如何运行镜像内的脚本_Docker精华问答 | Docker commit如何用?
  2. 网页嵌套:一个html嵌套到另一个html中
  3. tab+easyui datagrid无法正常显示
  4. unable to verify the first certificate
  5. 升级到jdk1.8后 sun/io/CharToByteConverter错误及处理
  6. sed mysql配置文件_linux下mysql配置文件my.cnf最详细解释
  7. vs2019写c语言用不了scanf,VS2010里编C程式不能用scanf()吗?
  8. 简单的编程用c语言,终于学会了用c语言实现简单的面相对象的编程方法了
  9. 项目结构设计 java_Java项目架构设计
  10. python脚本用类编写_跟老齐学Python之编写类之二方法