Что делает этот Perl-скрипт?Выглядит сложно - PullRequest
0 голосов
/ 13 сентября 2011

Впервые в Perl. Пытаясь понять, что это делает: S

@prefixes = ( "ROOT1", "ROOT2" );

$path = <>;
foreach my $prefix (@prefixes) {
    if($path =~ /\/$prefix\/(.*?)(\/|$)/ ) {
        print "$1\n";
        last;
    }
}

Ответы [ 2 ]

3 голосов
/ 13 сентября 2011

Печать следующего каталога на входе предыдущего был ROOT1 или ROOT2.примеры:

/ROOT1/x/y   -> x
/ROOT1/z     -> z
/ROOT2/bla   -> bla
x/ROOT2/y/z  -> y
ROOT1/x      ->
/bla/x       -> 
2 голосов
/ 13 сентября 2011

Устанавливает массив предопределенных префиксов:

@prefixes = ( "ROOT1", "ROOT2" );

Затем он считывает путь из стандартного ввода:

$path = <>;

Для каждого префикса он проверяет, начинается ли путь симя каталога, равное префиксу:

if($path =~ /\/$prefix\/(.*?)(\/|$)/ ) {

В то же время оно собирает все, что следует за префиксом ((.*?)), до следующей косой черты или до конца ((\/|$)),Если путь соответствует префиксу, он распечатывает собранную часть и выходит из цикла:

print "$1\n";
last;

Итак, вкратце, он ищет первый префикс, соответствующий пути, и печатает часть путипосле префикса.

Редактировать:"до последней косой черты" -> "до следующей косой черты"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...