package?FileOperate;
sub?new
{
?my?$class?=?shift;
?#一个空的引用
?my?$ref?=?{};
?#将引用和对象绑定
?bless($ref,$class);
?#返回引用
?return?$ref;?
}
#获取一个目录下的所有文件名字
sub?ListFile{
?????????my?$ref?=?shift;
????????my?$dir?=?shift?@_;
??my?@FileName;
????????opendir?DH,?$dir;
????????foreach?my?$file?(readdir?DH)
??{
????????????????next?if?$file?eq?"."?or?$file?eq?"..";
????????????????$file?=?"$dir/$file";
????????????????if(-d?$file)
????{
????????????????????????&ListFile($file);
????????????????}
????????????????else
????{
???????push?@FileName?,$file;?
????????????????}
????????}
????????return?@FileName;
}
#获取文件的内容写入容器
sub?GetFileContent
{
????my?$ref?=?shift;
?my?$filename?=??shift?@_;
?#测试文件是否存在
?if(?!?-e?$filename)
?{
?????print?"$filenamen";
??die?"The?file?does?not?exitsn";
?}
?#测试文本是否可以读取
?if(!?open?readFile,?$filename)
?{
??die?"Can?not?open?filen";
?}
?my?@SearchFile;
?while(<readFile>)
?{
??push?@SearchFile,$_;?
?}
?close?readFile;
?@SearchFile;
}
#将容器的内容写入文件
sub?WriteFileContent
{?
????my?$ref?=?shift;
????my?($FileName,@logitem?)?=??@_;
?my?$tm;
?open(logfile,">$FileName")||die?"can't?open?file?$&?!";
?print?logfile?"@logitemn";
?close(logfile);?
}
#模块结束标志
1;
?
?
?
?
?
?
use?FileOperate;
#获取对象实例
my?$FileOperate?=?FileOperate->new();
my?$FilePath?=?"C:Documents?and?SettingsAdministrator桌面PrelTest保存的模块文本处理";
#获取文件夹下所有内容
my?@FileContent;
@FileContent?=?FileOperate->ListFile($FilePath);
print?@FileContent;
#读取文本内容
my?$TextPath?=?"C:Documents?and?SettingsAdministrator桌面PrelTest保存的模块文本处理read.txt";
my?@FileContent?=?FileOperate->GetFileContent($TextPath?);
print?@FileContent;
#写入文本测试
my?$WriteFilePath?=?"C:Documents?and?SettingsAdministrator桌面PrelTest保存的模块文本处理write.txt";FileOperate->WriteFileContent($WriteFilePath,@FileContent);