> Greets, all. This is my first post here... I'm a seasoned
> C/C++ programmer, and recently started learning perl... it's
> going along well, and as an exercise, I've completely Perl'ed
> my webpage. I'm still a little dizzy because of the different
Howdy, cool, you'll love perl a lot there's so much you can do!
> directions it's pulling me towards, but it's fun anyway.
> Chaos always is :-)
>
> Anyway... the question:
> I need to know if there is a library function in perl to
> remove an element in an arbitrary position in an array.
>
> I have:
>
> @a = ( 1, 2, 3 );
>
> I want it to become:
>
> @a = ( 1, 3 );
>
> Is there any shortcut for this in perl?
>
> #ifdef INQUISITIVE_CHAR
>
> I'm keeping an array of tips (read from a file) in memory. At
> strategic (at least I think so) locations in the file, a
> random tip is displayed. Once it is, it has to be marked as
> used. Currently, I'm doing this:
>
> # Tip is done; remove it
> $tips[$tip_num] = $tips[$num_tips - 1];
> undef $tips[$num_tips - 1];
> --$num_tips;
>
> Am I doing it cleanly?
> Should I use $#tips instead of a separate count variable (as
> I've done), and will decrementing $#tips actually reduce the
> size of the array in memory?
Well you could actually put them in a hash with a number as the key and
the tip as th evalue then undefine the value of a key once it's used.
my %tips;
$tips{'1'} = "Use perl";
$tips{'joemama'} = "make love not war";
$tips{'2'} = "Socks first then shoes";
$tips{'monkey'} = "do not stare at sun";
my $random_key = ( keys %tips )[ rand keys %tips ];
print "Tip of the second: $tips{$random_key}";
delete $tips{$random_key}; # or undef instead of delete
my $next_random_key = ( keys %tips )[ rand keys %tips ];
You could even pass a hash referecn to a subroutine, have it grab the
randon key, get the value, remove it form the has, and return the value.
But I'll leave that for your fun or I may do it if I get time.
HTH
DMuey
>
> #endif // INQUISITIVE_CHAR ________________________________________
>
> Abhijit Shylanath
> http://mudeth.tripod.com/
>
>
> --
> 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]