On Mon, 21 Feb 2005, Wagner, David --- Senior Programmer Analyst --- WGO wrote:

> Oliver Fuchs wrote:
> > Hi,
> > 
> > I want to save names from <STDIN> to an array.
> > Afterwards I want to delete a single name in the array received again
> > from <STDIN>.
> > 
> > This is what I have:
> > 
> > #!/usr/bin/perl
> > 
> > use warnings;
> > 
> > print "Some names please: \n";
> > @names = <STDIN>;
> > print "Delete one name? \n";
> > $deleted = <STDIN>;
> > foreach $item (@names) {
> >     unless ($item eq $deleted){
> >     push (@aonly, $item);
> >     }
> > };
> > print "Your names:\n", @aonly, "\n";
> > 
> > 
> > My question is how can I delete an element of the array directly
> > (something like
> > pop (@names, $item);
> > ).
> > Is there a chance to delete it without using the index?
> > 
> > Oliver
> > --
> > ... don't touch the bang bang fruit
> 
>       You would use splice to remove an item. But if  I was going to do this, 
> then I would use a hash and then delete the item and not do the searching 
> through the array. If you only have 5 items, okay, but 10000 then you have to 
> search at least 5000 entires ( on avg ) to get your item. But if name is the 
> key into the hash, then one action to delete the name.
> 
> Wags ;)
> 

Hi,
thanks for answering. So I have to use a hash ... will try it.

Thanks
Oliver
-- 
... don't touch the bang bang fruit

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to