perl 文件 检测

perl 文件 检测,第1张

给加分不?

#compare folders

use strict

sub get

sub FolderCompare

#输入的格式为:"perl foldercompare.pl <ul1 name><ul2 name>\n"

if ( @ARGV <2 )

{

die

}

system"svn export @ARGV[0] A"

system"svn export @ARGV[1] B"

my $dirA = "A"

my $dirB = "B"

FolderCompare($dirA, $dirB, "0") #第一次正老睁向比较

FolderCompare($dirB, $dirA, "1") #第二次反向比较,主要是查出B中有而A中没有的

#其中第三个侍卖岁参数是为了清除第一次已经输出的不一样的文本

system"rm A -rf"

system"rm B -rf"配磨

print "Finished!"

sub get

{

my $dir = $_[0]

my %array

opendir(DIR, $dir)

while (my $file = readdir(DIR))

{

my @array_tmp = stat("$dir/$file")

if($file =~ m/^[^.]/)

{

if(-d "$dir\\$file") #判断是否为目录,并标记

{

$array{$file} = [$array_tmp[7], "1"]

}

if(-f "$dir\\$file") #判断是否为文件,并标记

{

$array{$file} = [$array_tmp[7], "0"]

#print "$file\t$array{$file}[1]\n"

}

}

}

return %array

}

sub FolderCompare

{

my $FolderA = $_[0]

my $FolderB = $_[1]

my $temp = $_[2]

my %arrayA = get($FolderA)

my %arrayB = get($FolderB)

foreach my $FileNameA (keys(%arrayA))

{

if(exists($arrayB{$FileNameA}))

{

if($arrayA{$FileNameA}[1] eq "1")

{

if($arrayB{$FileNameA}[1] eq "1")

{

FolderCompare("$FolderA\\$FileNameA", "$FolderB\\$FileNameA", "$temp") #都为目录,进行递归

}

}

if($arrayA{$FileNameA}[1] eq "0") #都为文件,进行比较

{

if($arrayB{$FileNameA}[1] eq "0")

{

if($arrayA{$FileNameA}[0] != $arrayB{$FileNameA}[0])

{

if($temp == 0)

{

print "$FolderA\\$FileNameA is different from $FolderB\\$FileNameA\n"

}

}

}

}

}

else

{

print "$FolderA\\$FileNameA is not exitst in $FolderB\n"

}

}

}

#!/usr/bin/perl

use 5.010

#    (1)

say '(1) ', fileno OUT ? 'yes' : 'no'

#    (2)

open OUT, '>', "filename"

print OUT "abc\n"

say '(2) ', fileno OUT ? 'yes' : 'no'

close OUT

#    (3)

say '(3) ', fileno OUT ? 'yes' : 'no'

__DATA__

在perl里,fileno()函数可以返回句柄的文件描述符。可以使用fileno函数判断某个变量是否是文件句柄,判断文件句柄是否正常打开,判郑拿断文件句柄缓空的类型。

标准输入输出句柄 STDIN, STDOUT和 STDERR 的文件描述符 分别是0,1和 2 (Unix 标准传统),标准文件输入输出句柄的值从3开始,其具体值喊哪搭由句柄打开的顺序决定。若某变异 是一个普通变量,则fileno的返回值 是undef;若某个文件句柄未正常打开或者已关闭,fileno返回的值 也是undef。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/8194328.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存