No problem: perl still looks foreign to me after 15 years of using it off and on.
If you look up characters and strings, it will tell you more. It is what used to be called 'slicing' in the late 70s. Nowadays slicing means something completely different. Say you have 2 character strings
Code:
CHARACTER*6 six
CHARACTER*3 three
three = 'end'
If I wish to get a 3 character string into positions 1 to 3 of six
If I wish to copy from three to six, starting at position 4
Code:
six(4:6) = three
! I should now get legend
print *, six
There are also variants like
six

4) ! lege = VB left(six,4)
six(3

! gend = VB mid (six,3)
six

) ! legend - some people will code like this
// ! = VB &
With languages with proper string manipulation, you can actually remove whole chunks of string manipluation code where they convert from one from to another. It is basically to do with storage but it is very implemetation dependent
Code:
CHARACTER*1 waste(8) ! can take 8 words
CHARACTER*4 packed(2) ! on a 32/64 bit machine 4 words
CHARACTER*16 compact ! on a 64 bit machine, 1 word
The problem is that with word based machines, handling things like compact(2:5) can be very inefficient as it involves a lot of shifting and masking. It doesn't make any difference at all on an X86 architecture.