logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

PPI::Statement::Variable - Variable declaration statements

Author

       Adam Kennedy <adamk@cpan.org>

Description

       The main intent of the "PPI::Statement::Variable" class is to describe simple statements that explicitly
       declare new local or global variables.

       Note that this does not make it exclusively the only place where variables are defined, and later on you
       should expect that the "variables" method will migrate deeper down the tree to either PPI::Statement or
       PPI::Node to recognise this fact, but for now it stays here.

Inheritance

         PPI::Statement::Variable
         isa PPI::Statement::Expression
             isa PPI::Statement
                 isa PPI::Node
                     isa PPI::Element

Methods

type
       The "type" method checks and returns the declaration type of the statement, which will be one of 'my',
       'local', 'our', or 'state'.

       Returns a string of the type, or "undef" if the type cannot be detected (which is probably a bug).

   variables
       As for several other PDOM Element types that can declare variables, the "variables" method returns a list
       of the canonical forms of the variables defined by the statement.

       Returns a list of the canonical string forms of variables, or the null list if it is unable to find any
       variables.

   symbols
       Returns a list of the variables defined by the statement, as PPI::Token::Symbols.

Name

       PPI::Statement::Variable - Variable declaration statements

Support

       See the support section in the main module.

Synopsis

         # All of the following are variable declarations
         my $foo = 1;
         my ($foo, $bar) = (1, 2);
         our $foo = 1;
         local $foo;
         local $foo = 1;
         LABEL: my $foo = 1;

To Do

       - Write unit tests for this

See Also