Hi Sudarsan,
Sorry forgot to mention that : $pwuser = ($ENV{'REMOTE_USER'}); ## Apache var $groupfile is the group-file apache uses to authenticate. Unfortunetly there is no such thing as : $group = ($ENV{'REMOTE_GROUP'}); Therefor I have to open the file manualy and set it's $group. Any suggestions about a faster foreach ?? Regs David > > David vd Geer Inhuur tbv IPlib wrote: > > > Hi, > > > > I am currently almost done with my current job. > > As I am reviewing my scripts the foreach-loop started to anoy me. > > > > I am afraid this is slowing down the script. Does anyone know a faster way to > > do the following : > > > > # ------ > > open(FH, "< $groupfile"); > > @usrs = <FH>; > > Always check if open succeeds with an or die "..." statement > Slurping the file in is not advisable. It will be better to loop through it > > > > > close FH; > > > > $htusr = (grep {/htuser: /} @usrs)[0] ; > > $phi = (grep {/phil: /} @usrs)[0] ; > > $al = (grep {/all: /} @usrs)[0] ; > > It is better to anchor regexes, this should be written as /^htuser:/ etc. > I guess you are trying to find the group name of an entered user (You have > not mentioned what $pwuser is, this is a guess) > > If this is true (perldoc -f getpwnam, perldoc -f getgrgid) > This piece of code should do the job for you > #!/usr/bin/perl -w > use strict; > my $grp_name = getgrgid ((getpwnam ($pwuser))[3]); > $grp_name will contain the group name > > > > > > > > @htuser = split(/ /, $htusr); > > @phil = split(/ /, $phi); > > @all = split(/ /, $al); > > > > foreach $htuser(@htuser) { > > chomp $htuser; > > if ( "$pwuser" eq "$htuser" ) { $group = "iclab"; } > > } > > foreach $phil(@phil) { > > chomp $phil; > > if ( "$pwuser" eq "$phil" ) { $group = "phil"; } > > } > > foreach $all(@all) { > > chomp $all; > > if ( "$pwuser" eq "$all" ) { $group = "all"; } > > } > > if(!($group)) { $group = "none"; } > > # ------ > > Groupfile : > > > > htuser: user1 user2 user3 manyothers > > phil: user4 user5 manymore > > all: external1 external2 etc > > # ------- > > > > I know I should have used Strict, after I reviewed everything I will try to make > > it strict again. You guys convinced me of using strict. It's only a pain to correct > > it afterwards :( > > > > Thanks for your help in advance ! > > > > Regs David > > > > -- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > -- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]