关于perl的文件读取
来源:互联网 发布:批量条形码生成器软件 编辑:程序博客网 时间:2024/05/18 00:28
关于perl的文件读取
Perl语言操作文件是很常使用的操作,本文将介绍读取文件的一点小技巧。
本文将介绍两种读取文件的方法:
l 使用perl的内置函数readline;
l 另外一种就是使用文件句柄直接操作"<EXPR>"。
1. 使用readline
readline EXPR
readline
从文件句柄中读取数据,在标量环境中每一次从文件中读取一行记录,直到文件最后;在列表环境中,一次性将所有的文件记录全部读取。注意,我们可以使用“$/”来一次性的读取文件的所有记录。
当“$/”的值是undef时,readline返回文件中所有的行。
Readline实现了"<EXPR>"操作符的功能,当然你也可以直接的使用"<EXPR>"。
例如下面的程序:
$line = <STDIN>;
$line = readline(*STDIN); # same thing
当Readline遇到系统错误时,可以使用$!来返回错误,这在tty和socket错做的时候很有用。例如:
for (;;) {
undef $!;
unless (defined( $line = <> )) {
last if eof;
die $! if $!;
}
# ...
}
下面是例子:
代码
#!/usr/bin/perl
use strict;
use warnings;
my $line;
open FH, "< F://gan//1234.log";
#$/ = undef;
while ( $line = readline FH ) {
unless ( defined $line ) {
next if eof;
die $! if $!;
}
$_ = $line;
s//s*$//g;
s/^/s*//g;
if ( $_ eq "" ) { next; }
print $_, "/n";
}
close(FH);
F://gan//1234.log文件中的内容:
我们主要关注它的文件格式
perl语言很强大
在文件操作中表现的非常优秀。
(1)zzzzzzzzz
(2)xxxxxxxxx
所以,我们要好好的把它学习好!
运行结果
perl语言很强大
在文件操作中表现的非常优秀。
(1)zzzzzzzzz
(2)xxxxxxxxx
所以,我们要好好的把它学习好!
代码分析,我们从运行的结果可以看出,文件的格式变化了。在分析代码,首先来看黄色标记的代码
s//s*$//g;
s/^/s*//g;
使用的是s///,它的作用就是去除一行前端和尾部的空格。再来看蓝色标记的代码
if ( $_ eq "" ) { next; }
它的作用就是去除空行。最后再看粉红色标记的代码
#$/ = undef;
在这里我们把它注销掉,如果去除注销程序运行的结果就是如下所示:
perl语言很强大
在文件操作中表现的非常优秀。
(1)zzzzzzzzz
(2)xxxxxxxxx
所以,我们要好好的把它学习好!
原因就是当#$/ = undef;得时候readine就会运行在标量环境中,将文件中所有的行当做一行全部读出。
- 关于perl的文件读取
- perl读取二进制格式的bin文件
- perl读取excel文件
- Perl打开读取文件
- perl 文件读取
- perl读取文件
- Perl打开读取文件
- perl 读取文件
- perl读取文件内容
- perl文件读取之心得
- perl文件读取之心得
- perl几个读取文件命令
- Perl读取wtmpx日志文件
- 使用Perl读取Excel文件
- 疑问:Perl读取UTF8编码的文件,显示乱码。
- [经验总结]解决Perl读取utf-8编码文件的问题
- 分享:Perl打开与读取文件的方法
- Perl读取文件的两种常用方式
- 破解XP局域网共享连接数10个的限制
- 优秀员工的德商,智商,情商课程笔记
- 使用批处理启动及关闭SAP MMC
- 一些有用的开源项目
- 破解xp局域网共享限制(XP自由设置共享用户数方法)
- 关于perl的文件读取
- 将access导入SQL server
- 主题:Struts,Hibernate,Spring经典面试题收藏
- 阅读有的时候是一种无以名状的痛苦
- asp.NET C#开发中的一些常见的问题集锦
- CES 软件的新平台与新机遇
- 职场五大潜规则不可不知
- 网络命令荟萃
- 咋让我上夜班呢