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

NAME

Sed - A sed(1)-like stream editor

SYNOPSIS

  my $a = "Hello, world";
  my $b = sed { s/l/0/g } $a;
  print "'$a' => '$b'";

  'Hello, world' => 'He00o, wor0d'

  # Comparison of map and sed:
  my $a = "Hello, world";
  my $b = map { s/l/0/g } $a;
  print "('$a', '$b')\n";

  # prints: ('He00o, wor0d', '1')

  my $a = "Hello, world";
  my $b = sed { s/l/0/g } $a;
  print "('$a', '$b')\n";

  # prints: ('Hello, world', 'He00o, wor0d')

  my $phone_num = "213-555-1212";
  my $clean_num = sed { tr/0-9//cd } $phone_num;
  print $clean_num;

  # prints: 2135551212

DESCRIPTION

Sed implements a stream editor (sed), like the standard Unix utility of the same name. sed is called with a regular expression (see below) in curly braces as its first argument and a scalar as its second argument. A local copy of the scalar is made and the subroutine is applied to it (the original scalar is not modified).

The regular expression can be of the s/// or tr/// forms, and must be enclosed within { }. For example:

    $b = sed { s/\[%\s*\(.*)?\s*%\]/$defined{$1}/g } $a;

    $d = sed { tr/a-zA-Z0-9//cd } $c;

    # From Tom Christiansen's striphtml:
    $f = sed {
            s{ <
                (?:
                    [^>'"] *
                        |
                    ".*?"
                        |
                    '.*?'
                ) +
            >
            }{}gsx;
        } $e;

EXAMPLES

  # This is the use for which I originally conceived Sed:
  package Foo;
  use Sed;
  use vars '$AUTOLOAD';

  sub AUTOLOAD {
      my $self = shift;
      my $autoload = sed { s/.*::// } $AUTOLOAD;
      return $self->{$autoload};
  }

AUTHOR

darren chamberlain <darren@cpan.org>