先日、ブログのアーカイブのパスを変更したので、古いページから新しいページへリンクするようにした。
古いページをすべて上書き。新しいページへのリンクだけのページにする。

perl のスクリプトで。


my $input_dir  = 'zurazure2';
my $output_dir = "${input_dir}out";
opendir (DIR, $input_dir) or die "opendir失敗: $!";
while($file = readdir(DIR)){
  if($file ne '.' and $file ne '..'){
    #print "$file\n";
    $doc = << "____EOD____"; #
<html>
<body>
<a href="../${file}">This page moved.</a>
</body>
</html>
____EOD____
    open (FILE, "> ${output_dir}/${file}") or die "open失敗: $!";
    print FILE $doc;
    close FILE;
  }
}
closedir DIR;

Perl のヒアドキュメントでちょっとハマる。
シングルクォーテーションでくくっててうまく出力されない。

ヒアドキュメントでも引用マーカーをどの引用符で囲うかで文字列の解釈方法が違うようです。また、引用マーカーの引用符は省略する事が多く、ダブルコーテーションで囲った場合と同じ扱いになるようです。

小人さんへの置き手紙: perl のヒアドキュメント

ダブルクォーテーションにしたら思った通りの動作をしてくれた。

tags: zlashdot Perl MovableType Perl

Posted by NI-Lab. (@nilab)