35 |
|
|
36 |
foreach my $part ( split(/\|/, $self->pipe ) ) { |
foreach my $part ( split(/\|/, $self->pipe ) ) { |
37 |
warn "# part: '$part'"; |
warn "# part: '$part'"; |
38 |
if ( $part =~ m{^([^/]+)/([^\+]+)(\+.*)?$} ) { |
if ( $part =~ m{^([^/]+)/([^\+\?]+)(.*)?$} ) { |
39 |
my ( $class, $method, $args ) = ( $1, $2, $3 ); |
my ( $class, $method, $args ) = ( $1, $2, $3 ); |
40 |
my $params = $pipe; |
my $params = $pipe; |
41 |
if ( defined $args ) { |
if ( defined $args ) { |
42 |
$args =~ s/^\+//; |
$args =~ s{^[\?\+\s]}{}; |
43 |
warn "# class $class method $method args $args", $pipe ? " pipe args " . join(',',keys %$pipe) : ''; |
warn "# class $class method $method args '$args'", $pipe ? " pipe args " . join(',',keys %$pipe) : ''; |
44 |
map { |
map { |
45 |
my ( $name, $value ) = ( $1, $2 ) if m{^([^=]+)=(.+)$}; |
my ( $name, $value ) = ( $1, $2 ) if m{^([^=]+)=(.+)$} || confess "can't parse '$_'"; |
46 |
$params->{$name} = $value; |
$params->{$name} = $value; |
47 |
} split(/[\s\+]/, $args) |
} split(/\s*\+\s/, $args) |
48 |
} |
} |
49 |
my $default = $self->config( $class ); |
my $default = $self->config( $class ); |
50 |
foreach my $arg ( keys %$default ) { |
foreach my $arg ( keys %$default ) { |
64 |
} |
} |
65 |
} |
} |
66 |
|
|
67 |
return $out; |
return '<code>' . $self->pipe . '</code>' . $out; |
68 |
} |
} |
69 |
|
|
70 |
1; |
1; |