如何将文件的md5sum附加到下面的输出列表中。所以最后一个条目是 MD5 =“。$ md5 。
106 sub generate_file_hash(){
107 my $filename = shift;
108
109 $MASTERCOUNT++;
110
111 my ($devs, $ino, $mode, $nlink, $uid, $gid, $rdev,
112 $size, $atime, $mtime, $ctime, $blksize, $blocks) = stat($filename);
113
114 open(FILE, $filename) or die "Can't open '$filename': $!";
115 binmode(FILE);
116 $md5 = Digest::MD5->new->addfile(*FILE)->hexdigest();
117
118 return($filename . ",PERMISSIONS=" . $devs . ",INODE=" . $ino .
119 ",MODE=" . $mode . ",HARD LINKS=" .
120 $nlink . ",UID=" . $uid . ",GID=" . $gid .
121 ",DEVICE=" . $rdev . ",SIZE=" .
122 $size . ",LAST MODIFIED=" . $mtime .
123 ",INODE CREATED=" . $ctime . ",BLOCK SIZE=" .
124 $blksize . ",BLOCKS=" . $blocks . ",MD5=" . $md5);
125 }
<击>错误:击>
全局符号“$ md5”需要在integritychk第116行显式包名。
全局符号“$ md5”需要在integritychk第124行显式包名。
目前的输出是:
/etc/group,PERMISSIONS=51712,INODE=565260,MODE=33188,HARD LINKS=1,UID=0,GID=0,DEVICE=0,SIZE=595,LAST MODIFIED=1273887035,INODE CREATED=1273887035,BLOCK SIZE=4096,BLOCKS=8
因此将附加文件的MD5值。
答案 0 :(得分:3)
use Digest::MD5;
open(FILE, $filename) or die "Can't open '$filename': $!";
binmode(FILE);
my $md5 = Digest::MD5->new->addfile(*FILE)->hexdigest();
阅读Digest::MD5
manpage以获取有关使用该模块的各种方法的更多信息。