我创建了一个文件“rootfile”,其中包含某些文件的路径,perl 程序 mymd5.perl 获取每个文件的 md5sum 并按特定顺序打印。如果在命令行中给出了名称,如何将输出重定向到文件?例如,如果我这样做
perl mymd5.perl md5file
然后它将输出提供给 md5file。如果我只是这样做
perl mydm5.perl
它只会打印到控制台。
这是我的根文件:
/usr/local/courses/cs3423/assign8/cmdscan.c
/usr/local/courses/cs3423/assign8/driver.c
/usr/local/courses/cs3423/assign1/xpostitplus-2.3-3.diff.gz
这是我现在的程序:
open($in, "rootfile") or die "Can't open rootfile: $!";
$flag = 0;
if ($ARGV[0]){
open($out,$ARGV[0]) or die "Can't open $ARGV[0]: $!";
$flag = 1;
}
if ($flag == 1) {
select $out;
}
while ($line = <$in>) {
$md5line = `md5sum $line`;
@md5arr = split(" ",$md5line);
if ($flag == 0) {
printf("%s\t%s\n",$md5arr[1],$md5arr[0]);
}
}
close($out);