上部・下部メニュー部分をテンプレートを呼び出し、表示させるようにしています。
sub view{
open(FILE,"../../../html/lib/$ssifile")||&error("No file.html");
@ssifile=<FILE>;
$ssifile="@ssifile";
close(FILE);
($ssifile_head,$ssifile_body1)=split(/<body>/,$ssifile);
($ssifile_body,$ssifile_foot)=split(/<\/body>/,$ssifile_body1);
print "$ssifile_body\n";
}
$ssifileはメニューボタンが格納されています。
また、別のものと共有で利用しているのですが、階層が違うのでうまく表示してくれません。
テンプレートには「../../~」で画像等を表記していますが、ここでは「../../../~」にしないと画像・リンクが動作しません。
「print "$ssifile_body\n";」の上に"$ssifile_bodyの「../../」を「../../../」にすべて置き換え"としたいです。
素人考えで
$ssifile_body = ~s/..\/..\//..\/..\/..\//g;
としてみましたが、正常に表示しませんでした。(なぜか数字の羅列が表示…)
これはどのように修正したらよいでしょうか?
.もエスケープ
$ssifile_body = ~s/\.\.\/\.\.\//..\/..\/..\//g;
一括エスケープしてセパレータも変更
$ssifile_body = ~s#\Q../../#../../../#g;