Кстати он тоже не может парсить этот код (вывод PPI::Dumper):

PPI::Document
  PPI::Token::Comment   '#!/usr/bin/perl\n'
  PPI::Token::Whitespace        ' \n'
  PPI::Statement::Include
    PPI::Token::Word    'use'
    PPI::Token::Whitespace      ' '
    PPI::Token::Word    'strict'
    PPI::Token::Structure       ';'
  PPI::Token::Whitespace        '\n'
  PPI::Statement::Include
    PPI::Token::Word    'use'
    PPI::Token::Whitespace      ' '
    PPI::Token::Word    'warnings'
    PPI::Token::Whitespace      ' '
    PPI::Token::Word    'FATAL'
    PPI::Token::Whitespace      ' '
    PPI::Token::Operator        '=>'
    PPI::Token::Whitespace      ' '
    PPI::Token::Quote::Single   ''all''
    PPI::Token::Structure       ';'
  PPI::Token::Whitespace        '\n'
  PPI::Statement::Include
    PPI::Token::Word    'use'
    PPI::Token::Whitespace      ' '
    PPI::Token::Word    'feature'
    PPI::Token::Whitespace      ' '
    PPI::Token::Quote::Single   ''say''
    PPI::Token::Structure       ';'
  PPI::Token::Whitespace        '\n'
  PPI::Token::Whitespace        ' \n'
  PPI::Statement::Sub
    PPI::Token::Word    'sub'
    PPI::Token::Whitespace      ' '
    PPI::Token::Word    'with_prototype'
    PPI::Token::Whitespace      ' '
    PPI::Token::Prototype       '()'
    PPI::Token::Whitespace      ' '
    PPI::Structure::Block       { ... }
      PPI::Token::Whitespace    '\n'
      PPI::Token::Whitespace    '    '
      PPI::Statement::Break
        PPI::Token::Word        'return'
        PPI::Token::Whitespace          ' '
        PPI::Token::Number      '100'
        PPI::Token::Structure   ';'
      PPI::Token::Whitespace    '\n'
  PPI::Token::Whitespace        '\n'
  PPI::Token::Whitespace        ' \n'
  PPI::Statement::Sub
    PPI::Token::Word    'sub'
    PPI::Token::Whitespace      ' '
    PPI::Token::Word    'without_prototype'
    PPI::Token::Whitespace      ' '
    PPI::Structure::Block       { ... }
      PPI::Token::Whitespace    '\n'
      PPI::Token::Whitespace    '    '
      PPI::Statement::Break
        PPI::Token::Word        'return'
        PPI::Token::Whitespace          ' '
        PPI::Token::Number      '100'
        PPI::Token::Structure   ';'
      PPI::Token::Whitespace    '\n'
  PPI::Token::Whitespace        '\n'
  PPI::Token::Whitespace        ' \n'
  PPI::Statement::Compound
    PPI::Token::Word    'foreach'
    PPI::Token::Whitespace      ' '
    PPI::Structure::List        ( ... )
      PPI::Statement
        PPI::Token::Number      '1'
    PPI::Token::Whitespace      ' '
    PPI::Structure::Block       { ... }
      PPI::Token::Whitespace    '\n'
      PPI::Token::Whitespace    '    '
      PPI::Statement
        PPI::Token::Word        'say'
        PPI::Token::Whitespace          ' '
        PPI::Token::Word        'with_prototype'
        PPI::Token::Whitespace          '    '
        PPI::Token::Operator    '/'
        PPI::Token::Whitespace          ' '
        PPI::Token::Number      '10'
        PPI::Token::Whitespace          ' '
        PPI::Token::Structure   ';'
      PPI::Token::Whitespace    ' '
      PPI::Token::Comment       '# /  ; die "this dies!";'
      PPI::Token::Whitespace    '\n'
      PPI::Token::Whitespace    '    '
      PPI::Statement
        PPI::Token::Word        'say'
        PPI::Token::Whitespace          ' '
        PPI::Token::Word        'without_prototype'
        PPI::Token::Whitespace          ' '
        PPI::Token::Operator    '/'
        PPI::Token::Whitespace          ' '
        PPI::Token::Number      '10'
        PPI::Token::Whitespace          ' '
        PPI::Token::Structure   ';'
      PPI::Token::Whitespace    ' '
      PPI::Token::Comment       '# /  ; die "this dies!";'
      PPI::Token::Whitespace    '\n'
  PPI::Token::Whitespace        '\n'
  PPI::Statement::End
    PPI::Token::Separator       '__END__'
    PPI::Token::Whitespace      '\n'
    PPI::Token::End     'OUTPUT:\n10\n100\nthis dies! at a.pl line 17.\n'

т.е. он тоже представляет строку как комментарий:

PPI::Token::Comment       '# /  ; die "this dies!";'
--
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить