Perl有两个函数,这两个函数可以为一个串寻找一个特别的子链,并返回匹配的偏移量。Index从前开始搜索,rindex从串的结尾开始搜索。在你需要知道一个串里包含另外一个串的时候Index和rindex非常有用。
Index和rindex有两到三个参数:串搜索,子串搜索和随意搜索。
Rindex通常用做分析串的路径。你可以通过搜索路径定界符来清楚的知道一个路径的最后一个元素。这里有个简单的例子:
$file = substr($path, rindex($path, '/')+1);
index通常被用在一个循环里,用它来确定每个子链出现的开始。在下面的例子里,一个数组被创建。这个数组的创建是利用了文本中的块关键字的偏移量来设置的。这个例子显示了如何使用可选补偿参数搜索每个关键字的出现。
$pos = 0;
while (($pos = index($text, $keyword, $pos)) > -1)
{
push @offsets, $pos;
$pos++;
}
当你需要知道子链的偏移量的时候,Perl的两个index函数就会派上用场。但是,当你简单的测试一个串的存在的时候,你必须知道使用正规表达式搜索代替index/rindex。