InfiniteLoop has asked for the wisdom of the Perl Monks concerning the following question:

Greetings Monks,
Recently I stumbled upon Module::Checkstyle. Im looking to write a small module (which base classes Module::Checkstyle::Check) to check for correct tab delimitation in nested code blocks. I have read the pod, but Im not able to form any idea on how to check for tab spaces, for eg, in the following code:
sub foo { if ($something) { #do something if ($something_else) { } }else { #something else } }
How do I check for tab spaces in nested code blocks ?

Replies are listed 'Best First'.
Re: Module::Checkstyle::Check and nested blocks
by PodMaster (Abbot) on Oct 12, 2005 at 04:15 UTC
    I'm a tad confused, since according to the pod , you don't have to parse perl code, PPI does that for you. Example (PPI::Dumper output with PPI v0.992)
    PPI::Document PPI::Statement::Sub PPI::Token::Word 'sub' PPI::Token::Whitespace ' ' PPI::Token::Word 'foo' PPI::Token::Whitespace ' ' PPI::Structure::Block { ... } PPI::Token::Whitespace '\n' PPI::Token::Whitespace ' ' PPI::Statement::Compound PPI::Token::Word 'if' PPI::Token::Whitespace ' ' PPI::Structure::Condition ( ... ) PPI::Statement::Expression PPI::Token::Symbol '$something' PPI::Token::Whitespace ' ' PPI::Structure::Block { ... } PPI::Token::Whitespace '\n' PPI::Token::Comment ' #do something\n' PPI::Token::Whitespace ' ' PPI::Statement::Compound PPI::Token::Word 'if' PPI::Token::Whitespace ' ' PPI::Structure::Condition ( ... ) PPI::Statement::Expression PPI::Token::Symbol '$something_else' PPI::Token::Whitespace ' ' PPI::Structure::Block { ... } PPI::Token::Whitespace '\n' PPI::Token::Whitespace '\n ' PPI::Token::Whitespace '\n' PPI::Token::Whitespace ' ' PPI::Token::Word 'else' PPI::Token::Whitespace ' ' PPI::Structure::Block { ... } PPI::Token::Whitespace '\n' PPI::Token::Comment ' #something else\n' PPI::Token::Whitespace ' ' PPI::Token::Whitespace '\n'

    MJD says "you can't just make shit up and expect the computer to know what you mean, retardo!"
    I run a Win32 PPM repository for perl 5.6.x and 5.8.x -- I take requests (README).
    ** The third rule of perl club is a statement of fact: pod is sexy.