PrimeLord has asked for the wisdom of the Perl Monks concerning the following question:
use strict; use Time::Local; sub _init_values { my ($seconds, $minutes, $hours, $day, $month, $year) = localtim +e; my $date = sprintf("%04d%02d%02d", $year + 1900, $month + 1, $d +ay); my $report_dir = "/reports/directory"; my $config_dir = "/config/directory"; return $date, $report_dir, $config_dir, $hours; } sub _get_list { my ($date, $report_dir, $config_dir, $hours) = @_; my %reports; if ($hours == 00) { open IN, "$config_dir/report_master_list" or die "$!"; while (<IN>) { chomp; $reports{$_}++; } close IN or warn "$!"; _get_reports($date, $report_dir, $config_dir, \%reports) +; } elsif ($hours == 08) { open IN, "$config_dir/report_temp_list" or die "$!"; while (<IN>) { chomp; $reports{$_}++; } close IN or warn "$!"; open OUT, ">> /disk2/daily_report" or die "$!"; print OUT "\n\nDaily Reports That Were Unable To Be Tran +sferred\n"; print OUT "--------------------------------------------- +---\n\n"; for (sort keys %reports) { print OUT "$_\n"; } print OUT "\n\n"; unlink "$config_dir/report_temp_list" or warn "$!"; } else { open IN, "$config_dir/report_temp_list" or die "$!"; while (<IN>) { chomp; $reports{$_}++; } close IN or warn "$!"; _get_reports($date, $report_dir, $config_dir, \%reports) +; } } sub _get_reports { my ($date, $report_dir, $config_dir, $reports) = @_; my %site_map = qw( site1 fullsite1 site2 fullsite2 site3 fullsite3 site4 fullsite4 site5 fullsite5 site6 fullsite6 ); for (sort keys %$reports) { my ($report_name, $site) = split /\./; my @files = `ssh host.$site ls $report_dir`; for my $file (@files) { chomp $file; if ($file =~ /$report_name/ && $file =~ /$date/) +{ my $status = `ssh host.$site cat $report_d +ir/$file`; if ($status =~ /End of Report/) { my $transfer = `scp host.$site:$rep +ort_dir/$file /disk2/$site_map{$site}/Reports`; delete $reports->{$_}; } } } } open OUT, "> $config_dir/report_temp_list" or die "$!"; for (sort keys %$reports) { print OUT "$_\n"; } } my ($date, $report_dir, $config_dir, $hours) = _init_values; _get_list($date, $report_dir, $config_dir, $hours);
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Code Review
by Ovid (Cardinal) on Dec 12, 2002 at 22:25 UTC | |
by PrimeLord (Pilgrim) on Dec 13, 2002 at 15:10 UTC | |
|
Re: Code Review
by chromatic (Archbishop) on Dec 12, 2002 at 22:53 UTC | |
by PrimeLord (Pilgrim) on Dec 13, 2002 at 15:12 UTC |