このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

DropPerler

発言者:今井真人
( Date Sunday, December 12, 2004 07:09:34 )


DropPerler
http://drumsoft.com/drum/soft.htm#DropPerler

Perlスクリプトをドラッグ&ドロップで起動するアプリケーションに変えます。
ちょっとしたファイル変換に便利。

→  DropPerler

今井真人 さんからのコメント
( Sunday, December 12, 2004 07:18:15 )

暇つぶしにプログラムしてますが。。。MacOS Xならではの注意点として読み
込んだファイルの改行コードがCRの場合、注意が必要です。

PerlはUnix前提なので、改行コードがLFとして書かれているソースが多いです。

DropPerlerが使えるようになったら、思わぬところで便利です。Jeditでシコ
シコ直しているような仕事を一発で修正できますからね。
--------------------------------------------------------------------------
open ( INFILE , $ARGV[0] );            # 入力ファイル
open ( OUTFILE , "> $ARGV[0].hentekorin" );    # 出力ファイル
select ( OUTFILE );                # デフォルトの出力をOUTFILEにする

@lines = <INFILE>;
foreach $line (@lines) {
  @llines = (@llines , split(/\r/,$line));  # CRで一度区切り直す
}

foreach $line (@llines) {
  $find    = "これを見つけたら";
  $replace = "ちょいと直しとく";
  $line =〜 s/$find/$replace/g;
  print $line,"\n";
}

select ( STDOUT );                  # デフォルトの出力を元に戻す
close ( OUTFILE );
close ( INFILE );

今井真人 さんからのコメント
( Sunday, December 12, 2004 07:20:40 )

ありゃ。〜が全角文字になってしまった。

森下 さんからのコメント
( Sunday, December 12, 2004 09:15:00 )

処理前のどこかに
s/\x0D\x0A|\x0D|\x0A/\n/g
などと突っ込んでやれば、
元のテキストがCRのMacであろうが、CR+LFのWindowsであろうが、
Unix系ホストではLFに、Windows系ホストではCR+LFに直してくれますから、
改行に関しては環境依存しなくなりますよ。
多分、これが一番直すところが少なくて楽かなあ。
ただ、出力するときにCRにしたいのであれば、また戻す処理を入れなくてはなりませんが。

のもと さんからのコメント
( Monday, December 13, 2004 09:34:37 )

いや、ソースがCR改行になっているとコンパイルされないって話ですから

バカでいるために さんからのコメント
( Tuesday, December 14, 2004 01:09:36 )

DropPerlerに入れてもらいましょう。

kataoka さんからのコメント
( Tuesday, December 14, 2004 09:27:19 )

>今井さん、森下さん
$/ = "\r";
で、CRを改行コードとして認識すると思います。
試してないけど。

森下 さんからのコメント
( Tuesday, December 14, 2004 20:41:35 )

あ、本当だ、読み飛ばしてた。
「読み込んだファイル」を、ドロップレットに落としたテキストって、読んでました。(^^;;;;
DropPerlerが読み込んだPerlソースですね。

ん〜と、無理矢理つじつまあわせをすると、・・・
s/\x0D\x0A|\x0D|\x0A/\n/g
な動作をするドロップレットを、DropPerlerで作っておいて、
新しいドロップレットを作る前に持って来たPerlソースをいったんそこに落とせば、
あとはもともと作成された環境に依存する事無く動くぞ!っとか・・・(^^;;;;;;

クラシック環境でつくったPerlなCGIも、
これで安心と言う事で、一つご勘弁を<(。_。)> モウシワケナイ

のもと さんからのコメント
( Wednesday, December 15, 2004 11:39:41 )

あ、でもよくよく読んでみるとやっぱり処理するほうの改行コードのことを言っているのかもしれないですね。
こちらこそすみません。
まぁ、要するに改行コードには気をつけろ、と。基本ですが。

今井真人 さんからのコメント
( Wednesday, December 15, 2004 18:25:18 )

なかなか伝わらないもんですね。私の文章を見て、どこが誤解の元になったのか研究中。

森下 さんからのコメント
( Wednesday, December 15, 2004 21:07:15 )

いえ、今井さんの文章というより、わたしの方の思い込みがバイアスになってました。
のもとさんのレスを読んで、もう一度ゆっくり読んだら、理解できました。
今井さんの最初の発言で、「ちょっとしたファイル変換に便利なドロップレットができるよ。」
って、頭に入ったところに引き続き、つぎの発言を読んだので、
「読み込む」の主語は、「ちょっとしたファイル変換に便利なドロップレット」だと、
かってに思い込んでました。(^^;;;;
次の行をよく読めば、Perlのソースの話だという事が分かるはずですけど、
思考にロックがかかっちゃったようです。

で、のもとさんまでバイアスかけちゃいましたね。すみませんm(__)m


今井真人 さんからのコメント
( Thursday, December 16, 2004 09:22:53 )

kataoka さんからのコメント
> $/ = "\r";

これ試してみたんだけど、なぜかうまく動きませんでした。

それから、LF改行の文書も増えつつあるので、CR改行のみ対象にするのも今後のために
どうかなぁ?ということろです。