This function extracts a substring out of the string given by
returns it. The substring is extracted starting at
from the front of the string.
(Note: if you've messed with
$[, the beginning of the string isn't at 0,
but since you haven't messed with it (have you?), it is.)
OFFSET is negative, the substring starts that far from the
end of the string instead. If
LENGTH is omitted, everything to
the end of the string is returned. If
LENGTH is negative, the
length is calculated to leave that many characters off the end of the
LENGTH indicates the length of the substring
to extract, which is sort of what you'd expect.
You can use substr as an lvalue (something
to assign to), in which case
EXPR must also be a
legal lvalue. If you assign something shorter than the length of your
substring, the string will shrink, and if you assign something longer than the
length, the string will grow to accommodate it. To keep the string the same
length you may need to pad or chop your value using sprintf or the x operator.
To prepend the string
"Larry" to the
current value of $_, use:
substr($_, 0, 0) = "Larry";
To instead replace the first character of $_ with
substr($_, 0, 1) = "Moe";
and finally, to replace the last character of $_ with
substr($_, -1, 1) = "Curly";
These last few examples presume you haven't messed with the value of $[. You haven't, have you? Good.