[Perl][メモ] CGIのperlへのパスを書き換えるスクリプト

[Perl][メモ] CGIのperlへのパスを書き換えるスクリプト

CGIの先頭のperlへのパスを、ローカル環境用(#!perl)とアップロード先環境用(#!/usr/bin/perl)とで切り替えるPerlスクリプトを書いたのでメモ。Movable Type Open Sourceとかで遊んでるときに便利。

use strict;

foreach (glob '*.cgi') {
    open FH, $_;
    my @lines = <FH>;
    close FH;

    my $line = shift @lines;
    $line =~ s|!perl|!/usr/bin/perl| unless ($line =~ s|!/usr/bin/perl|!perl|);
    unshift @lines, $line;

    open FH, '>' . $_;
    flock FH, 2;
    print FH @lines;
    close FH;
}

こういう雑多な処理を自動化するときはPerlが便利すぎる。んで、foreach (glob '*.*') { ... }が便利すぎて困る。

ファイルを2回オープンしてるのが無駄な気がするんだけど、なんかいい案あるかな?

スポンサーサイト

トラックバック URL

http://liosk.blog103.fc2.com/tb.php/88-e57a5416

トラックバック

コメント

#!/bin/env perl
でいいんじゃないでしょうか?
  • 2008-03-08
  • by zigorou
  • id:v0W2OX1k
  • 編集
ローカルはWindowsだから#!/bin/env perlは動かないんです><
  • 2008-03-08
  • by LiosK
  • id:-

コメントの投稿

お名前
コメント
編集キー