源程序
use Cwd;
my $count=0;
my $dir=getcwd;
print "$dir\n";
open(IN,"<Makefile") or print "$!";
print "开始读取\n";
while(<IN>)
{
$count+=1;
print $_;
}
print "\n一共有 $count 行!";
close IN;
逐行解析
首先我们需要使用Cwd模块。
定义count变量用于计算读取到的行数。
定义变量dir,用于存储当前位置信息。
打印变量dir的内容。
简单打印一个语句“开始读取”
open函数,用来打开文件。
1:读:open(文件句柄,"<文件名")/open(文件句柄,"文件名"),前提文件必须已经存在,否则会返回0,出错信息在$!中。
2:写:open(文件句柄,">文件名"),文件如果不存在,那么创建之,如果存在,内容被清空,长度截为0,$!中有出错信息。
3:追加:open(文件句柄,">>文件名"),基本同写,但有一点,文件中的内容不会被清空,新的内容会追加到原文后面。
4:读写:open(文件句柄,"+<文件名"),通过“+<”模式,你可以既可以读文件,又可以写文件。你可以通过tell() 函数在文件内部移动,通过seek()函数进行定位。如果文件不存在,就会被创建。如果文件已经存在,原来的数据不会被清除。
使用while循环迭代IN,输出读取到的每一行。
$_表示默认输入和模式匹配内容。
最后输出count值,并关闭文件句柄。
要读取的文件
要读取的文件Makefile,一共是8行。
运行结果
结果与真实情况一致!