perl6.suОсвоим perl6 к 2015 году!

nota XX. Забавное использование $0


       В "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

   $0, << ... >>      charta situs       nota XIX <<     >> nota XXI   

    RSS     stdin@perl6.su    © Alexius Karmanov, 2010-2011