I think that you are confusing perl with C. I attempted to do similar things when I first started perl programming.
In C, a string is an array of bytes (with a null byte as a terminator), so you can write:
char * packet = "abcdefg"; packet[0] = 'X'; /* packet now contains "Xbcdefg" */
You can't do that in perl, because in a perl scalar variable can contain a string as a single item. It usually makes no sense to treat it as some sort of list type containing characters or bytes.
As other posters have said, if you want to change one character of a string, then you can use substr, but I suspect that is not what you are trying to do.
If you really want an array of characters, then you can declare one explicitly with something like:
@packet = ('a', 'b', 'c'); @packet = qw( a b c ); @packet = split //, "abc";
(All three lines produce the same result)
What is it that you are trying to achieve? I think if you give us more detail, we can help you solve your actual problem rather than natively pointing out what is wrong with what you have done so far.
In reply to Re: Change a String's Element
by chrestomanci
in thread Change a String's Element
by MathewM
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |