Какой алгоритм использовать для проверки соответствия данной строки одному из наборов префиксов и какому префиксу из этого набора?
Другой вариант: задан путь и набор каталогов, как проверить, находится ли путь в одном из наборов каталогов (при условии, что нет символических ссылок или они не имеют значения)?
Меня интересует описание или название алгоритма, или модуль Perl, который решает эту проблему (или может быть использован для решения этой проблемы).
Редактировать
Бонусные баллы за решение, позволяющее эффективно находить отношение 'is prefix of' между набором строк (набором каталогов)
Например, для данного набора каталогов: foo, foo/bar, foo/baz, quux, baz/quux, baz/quux/plugh
алгоритм должен найти, что foo
является префиксом foo/bar
и foo/baz
, и что baz/quux
является префиксом baz/quux/plugh
... надеюсь, без O(n^2) времени.