substr函数使得字符串的抽取和分离操作变得很容易。Substr可以用另一个字符串来替代或转移字符串的一部分,或者,它可以返回字符串的指定部分。
Substr函数带有两个,三个,或者四个参数。第一个参数为要操作的字符串或表达式。第二个参数为子字符串的开始偏移位置。如果你只使用这两个参数,substr将返回开始于指定偏移位置之后的所有字符。
第三个参数为可选或不选,它指定要返回子字符串的长度。第四个参数为取代子字符串的字符串,如果你想要获得要被替代的原始字符,这一参数特别有用。
开始偏移位置和长度参数可以为负值。如果开始偏移位置为负值,则要操作的子字符串从字符串的末端算起,于指定的字符数为开始。如果长度为负值,那么操作的字符从字符串的末端算起。
Substr可以作为一个lvalue而使用,在这种情况下第一个参数必须为一个lvalue。指定比取代子字符串还要短的字符串将会缩短原来字符串,而指定比取代子字符串长的字符串将会增长原来字符串。
以下为使用Substr的一些例子。
substr($a, 0, 0) = "Perl "; # put 'Perl ' at the front of the string
substr($a, -2) = 'CNET'; # replace the last two characters of the string with CNET, growing the string
$a = substr($_, 10, 5); # return 5 characters from the string starting at offset 10
substr($a, 0, 8) =~ s/"/'/g; # replace " with ' in the first 8 characters
当你需要从一个表达式或者一个字符串中抽取或操作一部分时,Substr是一个非常有用的函数。