文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>【Perl编程金典】特殊变量$/ 和“吞吃文件”

【Perl编程金典】特殊变量$/ 和“吞吃文件”

时间:2007-01-04  来源:yszll

到目前为止,我们讨论了读取文件的三种方式:行读取方式,字符读取,每次读取定量字符。 如果一次要读入整个文件,怎么办呢? Perl把这种任务称“吞吃文件”。 在“列表使用场合”下,试用菱形运算符是“吞吃文件”的一种方式。 比如给菱形运算符表达式一个数组,导致菱形运算符读取整个文件,并将其中的每行放入数组中的一个单元。 “吞吃文件”的另一种方式是更改特殊变量$/中的值。 $/ 中保存这输入行记录分隔符(它的默认分隔符是\n)。因此,每当菱形运算符用于读取数据时,它将一直读取数据,直到它发现与$/一致的字符。所以,如果我们将$/设为 undef ,菱形运算符将读取整个文件并将它们存储在标量中。   提示: 为了完成某个任务而将特殊变量(比如$/)的默认值更改为特殊值,将在后面的程序中导致错误。 请记住,任务完成时,一定要恢复它们的默认值。   无论何时更改$/或其他特殊变量的值,都应该在那个代码块中使用local指令,以便“特殊动作”完成后即可恢复为更改前的值。 这有助于避免难以察觉的错误。   使用更改$/的方法“吞吃文件”: ------------------------------- #!/usr/bin/perl
use strict;
use warnings;
print "***","$/","---\n";
open(FILE,"<file.txt");
$/ = undef;  # 此行注掉后,$arr 仅读入a
my $arr = <FILE>;
print $arr;
close(FILE);
-------------------------------- 程序输出及file.txt的文件内容   [root@dev perl]# ./t
***
---
a
b
c
d
[root@dev perl]# cat file.txt
a
b
c
d
[root@dev perl]#
------------------------------- *******************************   使用<>“吞吃文件”: #!/usr/bin/perl
use strict;
use warnings;
print "***","$/","---\n";
open(FILE,"<file.txt");
my @arr = <FILE>;
print @arr;
close(FILE);
------------------------------- 输出同上。
    使用local更改变量"$/": ------------------------------- #!/usr/bin/perl
use strict;
use warnings;
print "***","$/","---\n";
printfile(); sub printfile {
open(FILE,"<file.txt");
local $/ = undef;
my $arr = <FILE>;
print $arr;
close(FILE);
print "***","$/","---\n";
}
print "***","$/","---\n";
------------------------------
相关阅读 更多 +
排行榜 更多 +
试着飞手游下载

试着飞手游下载

休闲益智 下载
血染小镇(功能菜单)中文版下载

血染小镇(功能菜单)中文版下载

飞行射击 下载
泰坦之旅高爆版下载

泰坦之旅高爆版下载

角色扮演 下载