Программист написал функцию для подсчета уровней вложенности каталогов:
Все ли хорошо с этой функцией? Как вы думаете?
Во-первых, этот код даже не компилируется.
С вот такой ошибкой: Trailing \ in regex m/\/
. К чему бы это?
'\\'
– это строка из одного символа.
Но даже если исправить Trailing \ in regex
, все равно не все будет хорошо :(
Проблема со split’ом в ветке для Windows, который получает первым параметром строку '\\'
.
Если split получает первым параметром строку, то строка
интерполируется в регулярное выражение, и получается:
Лучше всегда передавать split’у регулярное выражение в качестве первого аргумента:
split m{\\}, $path
– будет меньше подобных неприятных сюрпризов.
Кроме этого, функция неправильно определяет уровень корневого каталога в Unix:
path_depth('/')
возвращает -1 вместо 0.
Самый дотошный разбор проблем на этот раз прислал Кирилл kitt-vl. Браво!