特定のファイルへのパスを含むファイル「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);