On Wed, 23 Jul 2003, Farrington, Ryan wrote:

> Ok I have a page that reads 2 files into arrays. Pretty simple stuff like
> this:
>       open(FILE, "file1.txt");
>       @file1 = <FILE>;
>       close(FILE);
>
>       open(FILE, "file2.txt");
>       @file2 = <FILE>;
>       close(FILE);
>
> Now file1 contains a complete list of users. And file2 contains a list of
> specific users. What I really want in the long run is to output the complete
> user list into a <select></select> form on a webpage... Below is what I
> currently have:
>
> --- CODE ---
>       $count = 0;
>       MEMBER:foreach my $curmem (@memberlist) {
>               $curmem =~ s/[\n\r]//g;
>               my $there = 0;
>               NOTE:foreach my $note (@notify){
>                       $note =~ s/[\n\r]//g;
>                       if($note eq $curmem){
>                               $there = 1;
>                               last NOTE;
>                       }
>               }
>               if($there){
>                       $memberlist_htmlvar .= qq~<option selected
> value="$curmem">$curmem</option>~;
>               } else {
>                       $memberlist_htmlvar .= qq~<option
> value="$curmem">$curmem</option>~;
>               }
>       }
> --- END CODE ---
>
> Now my problem is this: the above code works fine when I have to write it
> 3-4 times. But when I have it being written more then that the page slows
> down drastically. Ideally what I would like is a single variable that
> generates the option list once then have some dynamic way of checking it
> against the @notify array and marking it selected if it exists. BTW each
> time I get to the notify section I have to read a different file depending
> on where I am at in the loop. So the memberlist stays constant and the
> notify is dynamic. Ex:
>
> --- bad code no flames =)---
> ##before initial loop starts generate the member list with a variable I want
> filled in when I make reference to the variable
> foreach my $curmem (@memberlist) {
>       $curmem =~ s/[\n\r]//g;
>       $memberlist_htmlvar .= qq~<option $hash{$curmem}
> value="$curmem">$curmem</option>~;
> }
> ##during loop
>       %hash = ();
>       NOTE:foreach my $note (@notify){
>               $note =~ s/[\n\r]//g;
>               $hash{$note} = " selected ";
>       }
>       Print $memberlist_htmlvar; # I would like this to output the
> memberlist_htmlvar but have the $hash{$curmem}
>                                          #filled in with the new variables
>
>
> Anyone have thoughts?
>

Yuck. I suggest that you create a %notify hash and then simply do a
check on the %notify hash indexed by the $curmem, i.e.

if ($notify{$curmem}) { #its there

I don't believe that the html code generation is the appropriate
target for optimization.

**** [EMAIL PROTECTED] <Carl Jolley>
**** All opinions are my own and not necessarily those of my employer ****


_______________________________________________
Perl-Win32-Users mailing list
[EMAIL PROTECTED]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to