Home Perl Programming Page 4 - Perl: Sailing the List(less) Seas

# Replacing an Element Using a Slice OR Slice and Dice - Perl

People love lists. Everywhere you look you see them. On magazines, on television. They're everywhere; you can't escape. In this article and the ones that follow, I am going to teach you to blend in with the crowd by using Perl to create lists, multidimensional lists, and hashes, and furthermore, I'll show you how to manipulate each of them.

By: James Payne
Rating:  / 2
March 17, 2008

SEARCH DEV SHED

TOOLS YOU CAN USE

One method for replacing an element with another element is to use a slice, as demonstrated in the following example. Let's say that Nitro got mad because his mullet got pulled one too many times and he decided to quit. The crew at Gladiators interviewed a bunch of muscles and decided to go with a five foot four, 300 pound guy with a napoleon complex named Glutious-Minimus. Now they would have to add him to their list and remove Nitro, like so:

#!/usr/bin/perl

@gladiators=('Nitro ', 'Blaze ', 'CountFistula ','TheNutcracker ');

This code does what we set out for it to do: remove Nitro and insert Glutious in his position. If we had said \$gladiators[1], then it would have replaced Blaze, and so forth.

Here is the result:

Glutious-Minimus Blaze CountFistula TheNutcracker

But what if Nitro didn't quit and the Gladiators just wanted to expand, and hired on our wee friend Glutious? We can add him using the same method; just append him to the end of the list, like so:

#!/usr/bin/perl

@gladiators=('Nitro ', 'Blaze ', 'CountFistula ','TheNutcracker ');

Now we have the result:

Nitro Blaze CountFistula TheNutcracker Glutious-Minimus

And finally, if we want to leave space for another gladiator and don't want to append them to the end, we don't have to assign Glutious to position four at all. We could put him at five, six, or whatever position we like. Here, we will put him in position five, leaving four open:

#!/usr/bin/perl

@gladiators=('Nitro ', 'Blaze ', 'CountFistula ','TheNutcracker ');

When you print this out, you cannot tell that four is open. But what if we use our element counter from before?

#!/usr/bin/perl

@gladiators=('Nitro ', 'Blaze ', 'CountFistula ','TheNutcracker ');

As you can see, this will print out 5, which isn't really the amount of elements in the array. Remember, when using this method it simply gives you the last numbered element, not the real number of elements in the array.

Well that's it for this article. In the next one we will cover some more ways to work with lists and likely delve into hashes as well. So drop by often.

Till then...

 >>> More Perl Programming Articles          >>> More By James Payne