---
name: "Moose::Meta::Attribute::Native::Trait::String"
section: "3pm"
platform: "linux"
package: "perl-moose"
version: "2.4001-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/Moose::Meta::Attribute::Native::Trait::String"
---

# Moose::Meta::Attribute::Native::Trait::String(3pm)

Helper trait for Str attributes

## NAME

Moose::Meta::Attribute::Native::Trait::String - Helper trait for Str attributes

## VERSION

version 2.4001

## SYNOPSIS

```
  package MyHomePage;
  use Moose;
  has 'text' => (
      traits  => ['String'],
      is      => 'rw',
      isa     => 'Str',
      default => q{},
      handles => {
          add_text     => 'append',
          replace_text => 'replace',
      },
  );
  my $page = MyHomePage->new();
  $page->add_text("foo");    # same as $page->text($page->text . "foo");
```

## DESCRIPTION

This trait provides native delegation methods for strings.

## DEFAULT TYPE

If you don't provide an `"isa"` value for your attribute, it will default to `"Str"`.

## PROVIDED METHODS

- •

  **inc**

  Increments the value stored in this slot using the magical string autoincrement operator. Note that Perl doesn't provide analogous behavior in `"--"`, so `"dec"` is not available. This method returns the new value.

  This method does not accept any arguments.

- •

  **append($string)**

  Appends to the string, like `".="`, and returns the new value.

  This method requires a single argument.

- •

  **prepend($string)**

  Prepends to the string and returns the new value.

  This method requires a single argument.

- •

  **replace($pattern, $replacement)**

  Performs a regexp substitution ("s" in perlop). There is no way to provide the `"g"` flag, but code references will be accepted for the replacement, causing the regex to be modified with a single `"e"`. `"/smxi"` can be applied using the `"qr"` operator. This method returns the new value.

  This method requires two arguments.

- •

  **match($pattern)**

  Runs the regex against the string and returns the matching value(s).

  This method requires a single argument.

- •

  **chop**

  Just like "chop" in perlfunc. This method returns the chopped character.

  This method does not accept any arguments.

- •

  **chomp**

  Just like "chomp" in perlfunc. This method returns the number of characters removed.

  This method does not accept any arguments.

- •

  **clear**

  Sets the string to the empty string (not the value passed to `"default"`).

  This method does not have a defined return value.

  This method does not accept any arguments.

- •

  **length**

  Just like "length" in perlfunc, returns the length of the string.

- •

  **substr**

  This acts just like "substr" in perlfunc. When called as a writer, it returns the substring that was replaced, just like the Perl builtin.

  This method requires at least one argument, and accepts no more than three.

## 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.
