プロが教える店舗&オフィスのセキュリティ対策術

MAC OS Xを使用しています。
検索置換のプログラムをperで作成し、Applescript上で呼び出したいのです。
実際はファイルメーカーのスクリプトの中でApplescriptを記述してその中で呼び出したいのです。
do shell script "perl ~.pl"という感じで使えるのではないかと


下記のようなサンプルスクリプトを見つけたのですが
内容の更新の仕方がよく分かりません。
perlについては全くの初心者でいろいろ調べたのですがよく理解できませんでした。
検索置換したいのですが、どういうふうに書けばいいのでしょうか。
(2)の部分を教えて下さい。宜しくお願いします。

use strict;
use warnings;

use File::Copy 'move';

# (1) ファイルの内容を読み込む
my $file = 'F:\共有\PERL\test.txt';
open my $fh, '<', $file
or die qq/Can't open file "$file": $!/;
my $content = do {local $/; <$fh>};
close $fh;

# (2) 内容の更新 ▼をリターンに置き換えたいのです。
$line =~s/▼/\n/;

# (3) 一時ファイルへの書き出し
my $temp_file = "$file.$$." . int(rand 10000);
open my $temp_fh, '>', $temp_file
or die qq/Can't open file "$file": $!/;
print $temp_fh $content;
close $temp_fh or die qq/Can't open file "$file": $!/;

# (4) 一時ファイル名を元のファイル名に変更
move $temp_file, $file
or die qq/Can't move "$temp_file" to "$file": $!/;

A 回答 (1件)

> # (2) 内容の更新 ▼をリターンに置き換えたいのです。


> $line =~s/▼/\n/;

ここの置換内容のことなら、Perlの本を買ってきたり(できればラクダ本クラスのまともなやつ)「perl 正規表現」で検索したりして覚えてください。数例挙げる程度ならともかく、詳細をここに説明できるもんじゃないです。

一応、文字コードが正しければ、コメント通りの動作をするはずですが。
うまくいかないなら、どううまくいかないか、詳細に補足してください。

あと、
> my $file = 'F:\共有\PERL\test.txt';
これで入力ファイルを指定していますが、その指定方法がWindows用ですね。
    • good
    • 0
この回答へのお礼

勉強不足ですね。もうちょっと頑張ってみます。
早速本を購入してみたいと思います。
それでもわからない時に質問させていただきます。

お礼日時:2011/06/30 08:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!