perl中的文件句柄
文件句柄
文件句柄就是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中的文件句柄相关推荐
- 关于perl中的反勾号(``),system和exec
关于perl中的反勾号(``),system和exec 在perl中反勾号(``),system和exec都用来执行命令,这篇文章将给我们介绍它们各自的使用方法,联系,以及区别. 一.使用方法 1. ...
- perl中的反勾号(``),system和exec
在perl中反勾号(``),system和exec都用来执行命令,这篇文章将给我们介绍它们各自的使用方法,联系,以及区别. 一.使用方法 1. 反勾号(``) 首先,我们有命令输入操作符, ...
- Perl中的单行凝视和多行凝视
同其它大多数编程语言一样.Perl中的单行凝视也是#开头.比如: #print "Hello,World!"; 但多行凝视.不同的语言有不同的凝视方式,比方说: Java,C/C+ ...
- XML::Simple与Data::Dumper在Perl中的使用
在perl中使用XML::Simple与Data::Dumper对XML文件进行操作. foo.xml文件,内容如下: <servers> <server> ...
- Perl 中的正则表达式
9 Perl 中的正则表达式正则表达式的三种形式 正则表达式中的常用模式 正则表达式的 8 大原则 正则表达式是 Perl 语言的一大特色,也是 Perl 程序中的一点难点,不过如果大家能够很好的掌握 ...
- php 调用 perl,perl中如何调用R语言
以下是从网上收集的从perl中调用R的方法: 1 直接用system()命令 比如有个test.R程序,可以通过下面的方式调用: system("R 2 安装模块RSperl 该模块的具体介 ...
- 强大的Perl中的正则
转载本站文章请注明,转载自:扶凯[http://www.php-oa.com] 本文链接: http://www.php-oa.com/2008/12/20/power-perl.html Perl的 ...
- ubuntu18.0.4 不能下载 libgd2-dev(ubuntu 20.04 安装perl 中GD 模块失败的解决办法)
ubuntu18.0.4 不能下载 libgd2-dev 一.错误信息: Unable to locate package libgd2-dev 二.原因 没有对应源 到 https://packag ...
- linux perl 单例模式,Perl脚本学习经验(三)--Perl中ftp的使用
使用use Net::FTP; Demo: my $Server = '192.168.1.1'; my $User = 'admin'; my $Password = 'admin'; my $ft ...
最新文章
- Java中的初始化顺序
- Ubuntu下默认使用dash而非bash
- 我9月底的SAP Spartacus开发进展情况
- python协程处理海量文件_python_实战篇_使用协程gevent模块实现多任务copyA文件夹到B文件夹...
- CCIE理论-第九篇-IPV6详细介绍
- 《我和他的结婚录像和相册集》的快速传播
- 一种页面数据错误输入提示方法 【转】
- Spring MVC文件上传示例教程 - 单个和多个文件
- Geodatabase概述(翻译)
- VMware专家:行动起来 狙击云炒作
- 2010.6.20 OA项目组一周工作报告
- 服务器上安装python anaconda最简明教程
- SPSS问卷中的人口学变量是否要用?以及如何选用?【SPSS 065期】
- 16位LED恒流源芯片TC5020A,32*128点阵屏驱动函数
- 最长回文子串 马拉车算法
- 《学习的本质》读后感
- Fbank特征与MFCC特征解析
- RT-Thread学习笔记——信号量
- Matlab解方程, 等到数字解和解析式解
- PyQt5 实现矩阵计算器
热门文章
- dockerfile如何运行镜像内的脚本_Docker精华问答 | Docker commit如何用?
- 网页嵌套:一个html嵌套到另一个html中
- tab+easyui datagrid无法正常显示
- unable to verify the first certificate
- 升级到jdk1.8后 sun/io/CharToByteConverter错误及处理
- sed mysql配置文件_linux下mysql配置文件my.cnf最详细解释
- vs2019写c语言用不了scanf,VS2010里编C程式不能用scanf()吗?
- 简单的编程用c语言,终于学会了用c语言实现简单的面相对象的编程方法了
- 项目结构设计 java_Java项目架构设计
- python脚本用类编写_跟老齐学Python之编写类之二方法