note
kilinrax
Could could make this code a <strong><em>lot</em></strong> cleaner. Notably, that mess of splits and data assignments at the top, using <tt>`ls`</tt> when you should be using <tt>readdir</tt>, and scoping of variables.<br><br>Here's what i came up with after five minutes:
<code>
sub PRINT_INFO {
my ($netid, $sitename, $sector) = @_;
my $DAILY_HEAD = "Date Total";
$,="\t"; #Output Field Separator
my $report_type = 'Daily Totals';
my $MARKET = 'PHL';
my $DAILY_PATH = "/data1/$MARKET/reports";
my $BUSY_PATH = "/data1/$MARKET/bhreports";
my $PKD_PATH = "/data1/$MARKET/pkdreports";
my $MISC_PATH = "/data1/$MARKET/miscreports";
my $MDG_PATH = "/data1/$MARKET/mdgreports";
my $cellname = "$sitename Sector $sector";
my $search_string = "\Q$netid";
print "$cellname\n";
opendir DIR, $DAILYPATH;
my @all_readable_files = grep { ($_ ne '.') && ($_ ne '..') && ($_ !~ /\.Z//) } readdir DIR;
closedir DIR;
print "$DAILY_HEAD\n";
my $file;
foreach $file (@all_readable_files) {
my $date = substr ($file, 0 , (index $file, '_'));
open(FILE, "$DAILY_PATH/$file");
@DATA=<FILE>;
@result = grep { (index $_, $search_string) > -1 } @DATA;
for ( $i = 0; $i <= $#results; $i++ ) {
my $info = (split(' ', $result[$i]))[7];
print $date , $info . "\n";
}
close FILE;
}
}
</code>
45505
45516