置き換えたいプレースホルダーを含むパス名があります。
# an example path with a placeholder
my $path = '%myproject%Web/ui/images/';
# mapping of all placeholders
my %placeholders = (
myproject => 'myproject/installation/all'
);
# substituting all placeholders in the path
$path =~ s!%(.*?)%!/$placeholders{$1}/!g;
# works fine -> 'myproject/installation/all/Web/ui/images/'
print $path;
このコードは正常に動作しますが、問題が 1 つあります。指定されたファイル名とさまざまなプレースホルダーの長いリスト (したがってハッシュ) があります。%placeholders
堅牢性を高めるために、パスに指定されたプレースホルダーがマッピングに存在しない場合、エラーをスローしたいと思います。
それを達成する方法はありますか?