
<< ... >>
В "Using perl 6" приведен забавный пример использования $0. Если не ошибаюсь в perl 5 нельзя было использовать выражения вроде m/(\d+).+$1/ (приводило к ошибке). Сейчас иначе:
| | #!/usr/bin/perl6
# пример из книги
my $s='the quick brown fox jumped over the the lazy dog';
if $s ~~ m/ << (\w+) \W+ $0 >> / {
say "Found '$0' twice in a row";
} | | Found 'the' twice in a row |
Это, конечно, очень удобно. Особенно для случаев, подобных данному, когда ищутся повторяющиеся участки в строках. Интересно, а что будет, если поменять местами (\w+) и $0?| | #!/usr/bin/perl6
# пример из книги
my $s='the quick brown fox jumped over the the lazy dog';
if $s ~~ m/ << $0 \W+ (\w+) >> / {
say "Found '$0' twice in a row";
}
else {'non'.say} | | non |
Результат предсказуемый, хотя и не такой очевидный. Интересно, а что в данном примере делает << ... >>| | #!/usr/bin/perl6
# пример из книги
my $s='the quick brown fox jumped over the the lazy dog';
if $s ~~ m/ (\w+) \W+ $0 / {
say "Found '$0' twice in a row";
} | | Found 'the' twice in a row |
Вот так. Я читал про <<, но забыл. Ладно, пока finis. # mutatio postrema: 24 Aug 2010
|