属性 "query" に渡された "string"をフィルタリングし、フィルタリングされた値を持つURLを作成する必要があります。moose perlを使ったメソッド修飾子
ここに私のコード
package Search;
use Any::Moose;
has query => qw{ is ro isa Str required 1 };
# my method modifiers
around 'query' => sub {
my $orig = shift;
my $self = shift;
my $content = $self->$orig(@_);
# simple filter
$content =~ s{[^\w\-\s]}{}gi;
return $content;
};
sub create_uri {
my $self = shift;
my $uri = "http://localhost/search/".$self->{query};
return $uri;
};
1;
package main;
my $obj = Search->new({
query => '[email protected]#$%#%#@&-**[email protected]@#%!',
});
print $obj->query."\n";
print $obj->create_uri."\n"; # BAD
出力:予想通り
print $search->query;
FOO-バー、。
私は "create_uri" と呼ぶ
print $search->create_uri;
出力:& @
http://localhost/search/[email protected]# $%#%# - **バー@@#1%!
「クエリ」が完全に汚れています。 これを解決するには?
ありがとうございます! 私は最初のオプションを使用しました。 でも、 "tiggers"を使って成功を収めています。 – killzone