On Mon, Oct 21, 2002 at 04:32:27PM -0500, Akens, Anthony wrote:
[snip]
It looks like you forgot -w and use strict.
> open (NAMES, $namefile)
> or print "Could not open $namefile $!";
Do you really want to continue and read the file if the open fails?
> while(<NAMES>)
> {
> ($key, $value) = split /:/;
Is it possible to have colons in the display name? If so you should limit
your split:
($key, $value) = split /:/, $_, 2;
> chomp $value;
> $Names{$key} = $value;
> }
> close NAMES;
>
> %seen=();
> print "<P>";
>
> foreach $dirname (sort { "\L$Names{$a}" cmp "\L$Names{$b}" } keys %Names){
> $displayname = $Names{$dirname};
> if (($displayname eq "MISSING") or ($displayname eq "HIDE")){}
> else{
That empty block there looks odd. The typical way to do this is:
unless (($displayname eq "MISSING") or ($displayname eq "HIDE")) {
or
if (($displayname ne "MISSING") and ($displayname ne "HIDE")) {
Though I would use:
unless ($displayname eq 'MISSING' || $displayname eq 'HIDE') {
but only because I prefer '||' to 'or', and don't like doubling up on
parens if it can be avoided.
>
> $item = substr($displayname, 0, 1);
> if ($seen{"\L$item"}++){}
> else {
Here's another empty block; you should avoid these. Use:
unless ($seen{"\L$item"}++) {
or
if (!$seen{"\L$item"}++) {
instead.
> print "<A NAME=\"$item\">\U$item<\/a><br>\n";
> }
> print "<a href=\"installer.pl?dirname=$dirname&displayname=$displayname\">";
You can avoid having to escape quotes by using different quote delimiters:
print qq{<a href="installer.pl...">};
If installer.pl is the name of the script this code is in you might be
better off using $ENV{SCRIPT_NAME}.
> print $displayname;
> print "<\/a><br>\n";
You don't need to escape forward slashes "/", just backslashes.
I'd suggest combining your print statements:
print(
qq{<a href="installer.pl...">},
qq{$displayname</a><br>\n}
);
> }
> }
Personally, I would avoid the "\L..." and "\U..." in favor of function
calls, i.e. lc(...) and uc(...). This is a personal preference arising from
the fact that it's easy for me to overlook the \L and \U in a string.
Everything else looks fine.
Michael
--
Administrator www.shoebox.net
Programmer, System Administrator www.gallanttech.com
--
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]