2006-08-29
@ [perl] qr演算子
Perlでqrといういわゆる正規表現のパターンを生成する演算子があるのですが、これをrefしてみると'Regexp'というものが返ってくることを今日始めて知りました。
$ perl -e 'print ref(qr/hoge/),"\n"'; --> Regexp
これを利用すると
#!/usr/bin/perl
my @list = ('/index.html', qr#^/abc#, qr#^xyz#);
for my $pattern (@list) {
if (ref($pattern) eq 'Regexp') {
if ($ENV{REQUEST_URI} =~ $pattern) {
...
}
}
else {
if ($ENV{REQUEST_URI} eq $patern) {
...
}
}
}
みたいな感じで正規表現による部分一致とeqによる完全一致をごちゃまぜにリストに突っ込んでおけるのでちょっとだけ便利。
[ツッコミを入れる]