6.11 パターンが有効かどうか検証する

eval構文内でダミー文字列に炊いてマッチングを行うことで、パターンが有効かどうかテストする。

do {
  print "Pattern? ";
  chomp($pat = <>);
  eval { " " =~ /$pat/ };
  warn "INVALID PATTERN $@" if $@;
} while $@;

パターンが有効かどうか検証する単独のサブルーチン

sub is_valid_pattern {
  my $pat = shift;
  eva { "" =~ /$pat/ };
  return $@ ? 0 : 1;
}