On Tue, 24 Sep 2002, David Samuelsson (PAC) wrote:

> I have an array with a lot of data.
> 
> i want to remove certain elements from it:
> so i ran:
>            for (@array){
>            s/$current_user.*//;
>            }
> 
> nw when i print it, all $current user are gone as i wanted, but its a big space in 
>the array instead.
> like:
> 
> user1
> user1
> user2
> user2
> 
> 
> 
> user4
> user4
> user4
> etc..
> 
> how do i get the array to be without the spaces, i tried to remove all whitespaces 
>with s/\s+/, that didnt seem to work, any ideas?

The loop variable (in this case $_) of a for loop is an alias of the array 
varaible being processed (perldoc perlsyn). When you modify it with s/// 
the array variable is also changed, in this case to a zero length string.
This explains the spaces in your output. Instead of doing a s/// you can
do this

@array = grep {!/^$current_user.*$/} @array;
Anchor your regex, you don't want user1 matching user11 or user12...


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to