Perl学习笔记(六)--文件(一)

一、文件描述符:

    访问文件时用来代表文件的数字。

    它是系统资源,系统限制打开的文件描述符数量。

    Perl中只在某些系统调用时才使用它

文件句柄:

    功能同文件描述符,但是与文件描述符不是一个东西。

    Perl使用文件句柄代表文件。

    文件描述符与文件句柄互相转化:

    文件句柄=>文件描述符:fileno(F);返回文件描述符

    文件描述符=>文件句柄:open(F,”>&n”);

 

二、文件变量
     文件:存放在磁盘上,永久存储数据,用于读写访问。访问前要先打开文件,结束后关闭文件。

open(HANDLE,”>filename”)||die $!;    成功返回非零,失败返回零。

     HANDLE:文件句柄,文件变量.用来代表操作的文件,以字母开头,字母,数字,下划线组成,不以$,@,%类的符号开头,可能与关键字if等重名,故一般用大写字母.

    缺省打开的句柄STDIN,STDOUT,STDERR,文件描述符为0,1,2。不用调用open就可以直接访问

    STDIN:键盘输入,控制台

    STDOUT:屏幕,显示屏

    STDERR:错误输出,显示屏。

 

三、访问模式
     文件用于读还是写,在第二个参数前的>位置。

    (1) 只读:<或省略,若文件不存在则打开失败,如open(F,”file”),open(F,”<file”)
     (2) 只写:>,为写打开文件,若文件不存在则创建,文件存在则清除内容再写.
     (3) 追加:>>,为写打开文件,若文件不存在则创建,文件存在则不清除内容,在原内容后追加。
     (4) 读写:+<,可读可写,若文件不存在则打开失败,不清除内容,不追加,直接复盖原文件.
     (5) 读写+>,可读可写,若文件不存在则创建,文件存在则清除内容再写.
     (6) 读写+>》,可读可写,若文件不存在则创建,文件存在则追加.
     (7) 管道: |

 open(F,”| cat >hello”),把文件F的输出(print F $a)作为|后的输入.open(F,”comm|”),把comm的输出作为F的输入。

 

四、文件名

    Filename:可以是相对路径或绝对路径的文件名.
     说明:
     1.不含路径的文件名前的空格可以忽略,但有路径的文件名不能。
     2.可以用变量来代表文件名.
     3.特殊的文件名如”>file”,可能使读变成写,使用变量代表文件名时注意过滤文件名.
     4.复制文件句柄:open(F,”>&STDOUT”),写入F文件的内容都变成写入屏幕STDOUT
     5.使用文件描述符:open(F,”>&3″),把文件描述符复制成句柄,或者”>&=3″
     6.open() 打开成功返回非零,失败返回零.

open()||die “error $!”  成功时不执行die,失败时执行.

 

转载于:https://www.cnblogs.com/Hebe/p/4441767.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/419991.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android mkdirs 不起作用,Android mkdirs()创建一个零字节文件而不是文件夹

在我的Android应用程序中,我试图在SD卡上创建以下文件夹&#xff1a;/mnt/sdcard/OSGiComponents/admin/felix-cache/这是代码&#xff1a;File cacheDir new File( Environment.getExternalStorageDirectory().getAbsolutePath() "/OSGiComponents/admin/felix-cache/&qu…

向ComboBox列表框中添加Enum的全部数据

相当于利用反射的 GetValues与GetNames foreach (HETieXinType theType in Enum.GetValues(typeof(HETieXinType))) foreach (string mode in Enum.GetNames(typeof(BooleanInteractionMode))) { ledResponseModesComboBox.Items.Add(mode); switchResponseModesComboBox.Items…

android sqlite 备份数据库文件,android – 将SQLite数据库备份和还原到sdcard

这是我的代码&#xff1a;// Local databaseInputStream input new FileInputStream(from);// create directory for backupFile dir new File(DB_BACKUP_PATH);dir.mkdir();// Path to the external backupOutputStream output new FileOutputStream(to);// transfer bytes…

Spring中配置数据源的4种形式 ---转

不管采用何种持久化技术&#xff0c;都需要定义数据源。Spring中提供了4种不同形式的数据源配置方式&#xff1a; spring自带的数据源(DriverManagerDataSource)&#xff0c;DBCP数据源&#xff0c;C3P0数据源,JNDI数据源。 1.spring自带的数据源 DriverManagerDataSource XML…

android中拖动文字实现功能,Android:图片中叠加文字,支持拖动改变位置

之所以做了这么一个Demo&#xff0c;是因为最近项目中有一个奇葩的需求&#xff1a;用户拍摄照片后&#xff0c;分享到微信的同时添加备注&#xff0c;想获取用户在微信的弹出框输入的内容&#xff0c;保存在自己的服务器上。而事实上&#xff0c;这个内容程序是无法获取的&…

Mac 下nginx 环境的配置

这个是在度娘那里学来的。 因为是使用brew所以先安装&#xff1a; 安装命令如下&#xff1a;curl -LsSf http://github.com/mxcl/homebrew/tarball/master | sudo tar xvz -C/usr/local --strip 1当brew安装成功后&#xff0c;就可以随意安装自己想要的软件了&#xff0c;例如w…

android抽屉屏幕右滑,android - Android - 使滑动抽屉从左向右滑动 - 堆栈内存溢出...

我使用下面的XML布局在我的应用程序中实现了“Sliding Drawer”:(我从androidpeople.com得到了这个例子)android:layout_width"fill_parent" android:layout_height"fill_parent"xmlns:android"http://schemas.android.com/apk/res/android"andr…

bzoj 3196/tyvj p1730 二逼平衡树

原题链接&#xff1a;http://www.tyvj.cn/p/1730 树套树。。。 如下&#xff1a; 1 #include<cstdio> 2 #include<cstdlib> 3 #include<cstring> 4 #include<algorithm> 5 #define lc root<<1 6 #define rc root<<1|1 7 #define INF…

观察者模式与Boost.Signals

1&#xff09; 观察者模式定义 略&#xff0c;各种设计模式的书上都有定义。 2&#xff09; 观察者模式一般实现 观察者模式一般实现&#xff0c;都是“被观察者”保存一个“观察者”的列表&#xff0c;循环这个列表来通知“观察者”。代码&#xff0c;其中使用了boost的智能…

Android获取最新发送短信的基本信息,没有之一

注册&#xff1a; getContentResolver().registerContentObserver( Uri.parse("content://sms"), true, new SmsObserver(this, new Handler())); 监听&#xff1a; //用于检测发出的短信 public class SmsObserver extends Conten…

联想android刷机教程,超详细的联想刷机教程~带你嘻刷刷

一、刷机是什么说到“刷机”&#xff0c;很多人可能会和“升级”混淆起来&#xff0c;其实升级和刷机并不是同一概念。通俗地讲&#xff0c;升级就是对手机内的软件或系统进行升级&#xff0c;比如很多厂商手机都支持的OTA空中在线升级。而刷机&#xff0c;则相当于就是重装系统…

我的github地址

我的github仓库地址 https://github.com/xutiantian/Test转载于:https://www.cnblogs.com/xuxiaomeng/p/4455850.html

多看 android6,多看阅读本地版

为您推荐&#xff1a;多看阅读《多看阅读本地版》是一款由多看科技倾情研发打造的海量优质完本小说免费在线阅读app软件&#xff0c;这款软件的功能非常的全面&#xff0c;操作性简单&#xff0c;上手起来非常的容易&#xff0c;在这款软件里&#xff0c;各位用户们将能够于此体…

UIProgressView-初识IOS

好几天没更新了&#xff0c;学的时候太紧&#xff0c;没时间复习了都。今天刚好有时间&#xff0c;多更几个。 今天复习的是UIProgressView,我们常见使用在修改某些属性的时候经常用到&#xff0c;比如透明度&#xff0c;今天我们介绍一个简单的使用例子 定义什么的&#xff0c…

android正则判断两个符号之间,Android字母、数字、字符任意两种组合正则验证

释放双眼&#xff0c;带上耳机&#xff0c;听听看~&#xff01;最近朋友有个用户名验证&#xff0c;要求字母、数字、字符任意两种组合即可&#xff0c;让我帮写个正则验证&#xff0c;现在正则验证如下&#xff1a;/*** 判断是否匹配正则** param regex 正则表达式* param inp…

android手机deviceowner,删除 androidDeviceOwnerWiFiConfiguration

删除 androidDeviceOwnerWiFiConfigurationDelete androidDeviceOwnerWiFiConfiguration2021/3/24本文内容命名空间&#xff1a;microsoft.graphNamespace: microsoft.graph重要提示&#xff1a; /beta 版本下的 Microsoft Graph API 可能会更改;不支持生产使用。Important: Mi…

浅谈0/1切换

前言:   做过GUI开发的同学, 都知晓双缓存机制. 其过程为先把所有的场景和实体对象画到一个备份canvas, 然后再把备份canvas的内容整个填充真正的画板canvas中. 如果不采用双缓存机制, 你的画面有可能会出现闪烁和抖动.   究其原因是整个绘制过程, 包含清屏, 绘制场景和各…

Action和Func区别

Action<>和Func<>其实都是委托的【代理】简写形式。 简单的委托写法&#xff1a; 1 //普通的委托2 public delegate void myDelegate(string str);3 4 //Delegate委托调。5 myDelegate dDelegate new myDelegate(SayHellow);6 dDelegate("Mr wang");7 8…

最好的android one手机,最高配置的Android One手机登场 LG推出G7 One与G7 F

原标题&#xff1a;最高配置的Android One手机登场 LG推出G7 One与G7 F集微网消息&#xff0c;Android One原本是谷歌与中国台湾的联发科共同开发的一个项目&#xff0c;旨在让手机制造商打造低成本的智能手机&#xff0c;这些手机主要是销售给新兴市场上的近10亿潜在用户。随着…