Perl で最後のスラッシュを統一する方法


ディレクトリ指定のスラッシュの有無を統一する Perl コードサンプルです。

使いどころ

CGIやその他の環境変数の設定で、処理対象や関連ファイルの保存先ディレクトリを環境変数としてまとめて設定する場合があります。

その後の処理(ファイルを開いたり)では「ディレクトリ名+ファイル名」を文字列として処理することが多いので、ディレクトリ名にスラッシュを付けておくかどうかの規則が必要となります。

以下のコードを通すことで、変数の設定でスラッシュがあっても無くても、どちらかに統一することができます。

Perl コードサンプル

#環境変数リスト
@mixed = (
    './conf/filedir',
    './result/filedir/',
    'http://access.url/result',
    'http://access.url/conf/',
);

#スラッシュありに統一
@w_sla = map {m@/$@ and $_ or "${_}/"} @mixed;

#スラッシュなしに統一
@wo_sla = map {$_ =~ s@/$@@; $_} @mixed;

#同じ変数に統一の結果を格納してもOK
@mixed = map {m@/$@ and $_ or "${_}/"} @mixed;

#@mixed は統一済み