The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Code::Perl::Expr - Extra Code::Perl classes for Petal

DESCRIPTION

These are some extra Code::Perl Expression classes that are specific to Petal

EXPRESSION CLASSES

Petal::CodePerl::Expr has been removed from the front of the class names, so for example Alternate is really Petal::CodePerl::Expr::Alternate.

Alternate

  $class->new(Paths => \@paths);

  alternate(@paths);

@paths - an array of Expression objects

Alternate will try each expression in turn, looking for the first one which evaluates without dieing.

  $class->new(Expr => $path);

  pathexists($path);

$path - an Expression object

PathExists will return true if the $path can be followed without dieing, false otherwise

DerefTAL

  $class->new(Ref => $ref, Key => $key);

  dereft($ref, $key);

$ref - an Expression object $key - a string

DerefTAL will attempt to dereference the object returned by $ref in the TAL style, using the $key. This means if $ref yields a blessed reference the $key will used as a method name if possible. If $key cannot be used as a method name or $ref yielded an unblessed reference then DerefTAL tries to dereference $ref as an array or a hash, using $key. If $ref doesn't yield a reference then we die.

AUTHOR

Written by Fergal Daly <fergal@esatclear.ie>.

COPYRIGHT

Copyright 2003 by Fergal Daly <fergal@esatclear.ie>.

This program is free software and comes with no warranty. It is distributed under the LGPL license

See the file LGPL included in this distribution or http://www.fsf.org/licenses/licenses.html.