home | O'Reilly's CD bookshelfs | FreeBSD | Linux | Cisco | Cisco Exam  


3.2.162 substr

substr 

EXPR

, 

OFFSET

, 

LENGTH


substr 

EXPR

, 

OFFSET

This function extracts a substring out of the string given by EXPR and returns it. The substring is extracted starting at OFFSET characters 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.) If 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 string. Otherwise, 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 "Moe" , use:

substr($_, 0, 1) = "Moe";

and finally, to replace the last character of $_ with "Curly" , use:

substr($_, -1, 1) = "Curly";

These last few examples presume you haven't messed with the value of $[ . You haven't, have you? Good.