perl stores ASCII strings using one byte per character. What you are seeing is operations on strings calculating intermediate results that take extra storage. That can be reduced with careful coding. To improve matters further you can use the built-in vec function to store things more compactly.
Dave.