这个是perl基本的文件操作
05 Aug 2016
一般在linux中文件路径的格式是 /home/yourname/file;而在windos下是D:\home\yourname\file这样的格式;两者的文件系统有一定的差别。
下面是其一个简单的用法:
use File::Spec;
my $path=File::Spec->catfile(qw{home cindy docs resume.doc});
print $path;
## home\cindy\docs\resume.doc
我这是在window 下运行的输出结果,如果在linux下运行的话就是/这种分隔形式。
opendir FILE,'.' or die "unsucceed!";#以当前的文件为例
while(my $name=readdir FILE){
next if $name=~/^\./;#如果想要所有的非点(non-dot)文件(不是由点开头的文件)
print "$name\n";
}
closedir FILE;#同文件句柄一样,目录句柄会在程序结束时自动关闭;
## fileSystemAndProcessManagerment.Rmd
## get_gene_fpkm (2).pl
## get_gene_fpkm.pl
如果要将每个文件名字都记录下来可以建立@array然后存储一下
使用CWD模块,current working dir
use Cwd qw(cwd);
print cwd, "\n";
## D:/我的科研之路/毕业设计/P1clusterToShowTissueSpcific20160804/重新编写cuffl流水线/参考脚本
use Cwd qw(cwd);
print cwd, "\n";
chdir("..");
print cwd, "\n";
## D:/我的科研之路/毕业设计/P1clusterToShowTissueSpcific20160804/重新编写cuffl流水线/参考脚本
## D:/我的科研之路/毕业设计/P1clusterToShowTissueSpcific20160804/重新编写cuffl流水线
linux RedHat6.5 也测试通过。
opendir FILE,'.' or die "unsucceed!";
while(my $name=readdir FILE){
next if $name=~/^\./;
print "$name\n";
}
closedir FILE;
mkdir "newFile" or die;
print "---------------------\n";
opendir FILE,'.' or die "unsucceed!";
while(my $name=readdir FILE){
next if $name=~/^\./;
print "$name\n";
}
closedir FILE;#
rmdir "newFile" or die;
print "---------------------\n";
opendir FILE,'.' or die "unsucceed!";
while(my $name=readdir FILE){
next if $name=~/^\./;
print "$name\n";
}
closedir FILE;
## fileSystemAndProcessManagerment.Rmd
## get_gene_fpkm (2).pl
## get_gene_fpkm.pl
## ---------------------
## fileSystemAndProcessManagerment.Rmd
## get_gene_fpkm (2).pl
## get_gene_fpkm.pl
## newFile
## ---------------------
## fileSystemAndProcessManagerment.Rmd
## get_gene_fpkm (2).pl
## get_gene_fpkm.pl
服务器上也测试通过。