# phpman > perldoc > Moose::Meta::Attribute::Native::Trait::Code

## NAME
    [Moose::Meta::Attribute::Native::Trait::Code](https://www.chedong.com/phpMan.php/perldoc/Moose%3A%3AMeta%3A%3AAttribute%3A%3ANative%3A%3ATrait%3A%3ACode/markdown) - Helper trait for CodeRef attributes

## VERSION
    version 2.2200

## SYNOPSIS
      package Foo;
      use Moose;

      has 'callback' => (
          traits  => ['Code'],
          is      => 'ro',
          isa     => 'CodeRef',
          default => sub {
              sub { print "called" }
          },
          handles => {
              call => 'execute',
          },
      );

      my $foo = Foo->new;
      $foo->call;    # prints "called"

## DESCRIPTION
    This trait provides native delegation methods for code references.

## DEFAULT TYPE
    If you don't provide an "isa" value for your attribute, it will default to "CodeRef".

## PROVIDED METHODS
    *   execute(@args)

        Calls the coderef with the given args.

    *   execute_method(@args)

        Calls the coderef with the instance as invocant and given args.

## BUGS
    See "BUGS" in Moose for details on reporting bugs.

## AUTHORS
    *   Stevan Little <<stevan@cpan.org>>

    *   Dave Rolsky <<autarch@urth.org>>

    *   Jesse Luehrs <<doy@cpan.org>>

    *   Shawn M Moore <<sartak@cpan.org>>

    *   יובל קוג'מן (Yuval Kogman) <<nothingmuch@woobling.org>>

    *   Karen Etheridge <<ether@cpan.org>>

    *   Florian Ragwitz <<rafl@debian.org>>

    *   Hans Dieter Pearcey <<hdp@cpan.org>>

    *   Chris Prather <<chris@prather.org>>

    *   Matt S Trout <<mstrout@cpan.org>>

## COPYRIGHT AND LICENSE
    This software is copyright (c) 2006 by Infinity Interactive, Inc.

    This is free software; you can redistribute it and/or modify it under the same terms as the Perl
    5 programming language system itself.

