PPI::Structure::List - Explicit list or precedence ordering braces


PPI documentation Contained in the PPI distribution.

Index


Code Index:

NAME

Top

PPI::Structure::List - Explicit list or precedence ordering braces

SYNOPSIS

Top

  # A list used for params
  function( 'param', 'param' );

  # Explicit list
  return ( 'foo', 'bar' );

INHERITANCE

Top

  PPI::Structure::List
  isa PPI::Structure
      isa PPI::Node
          isa PPI::Element

DESCRIPTION

Top

PPI::Structure::List is the class used for circular braces that represent lists, and related.

METHODS

Top

PPI::Structure::List has no methods beyond those provided by the standard PPI::Structure, PPI::Node and PPI::Element methods.

Got any ideas for methods? Submit a report to rt.cpan.org!

SUPPORT

Top

See the support section in the main module.

AUTHOR

Top

Adam Kennedy <adamk@cpan.org>

COPYRIGHT

Top


PPI documentation Contained in the PPI distribution.
package PPI::Structure::List;

use strict;
use Carp           ();
use PPI::Structure ();

use vars qw{$VERSION @ISA};
BEGIN {
	$VERSION = '1.215';
	@ISA     = 'PPI::Structure';
}

# Highly special custom isa method that will continue to respond
# positively to ->isa('PPI::Structure::ForLoop') but warns.
my $has_warned = 0;
sub isa {
	if ( $_[1] and $_[1] eq 'PPI::Structure::ForLoop' ) {
		if (
			$_[0]->parent->isa('PPI::Statement::Compound')
			and
			$_[0]->parent->type =~ /^for/
		) {
			unless ( $has_warned ) {
				local $Carp::CarpLevel = $Carp::CarpLevel + 1;
				Carp::carp("PPI::Structure::ForLoop has been deprecated");
				$has_warned = 1;
			}
			return 1;
		}
	}
	return shift->SUPER::isa(@_);
}

1;