ローカルディレクトリにあるファイルa.txtに書かれた’HelloWWWWWWWW’を読み出し、WWWWWWを削除して別の名前でファイルを保存するにはどのようなスクリプトが必要になりますか?
open(FILE, ’a.txt’);
$line = <FILE>;
close(FILE);
$line =~ s/WWWWWW//;
open(FILE, ’>別の名前’);
print FILE $line;
close(FILE);
でしょうか?
http://www.harukaze.net/~mishima/perl/index.html
Perl for Newbie�iPerl���S�҂̕����j
まあ、とりあえずこれで動くようです。。。。が
最短ではないと思います。
open(INPUTFILE, ”a.txt”);
open(OUTPUTFILE, ”>b.txt”);
while($lin = <INPUTFILE>)
{
$lin =~ s/(hello)(.*$)/$1/;
print OUTPUTFILE $lin;
}
close(INPUTFILE);
close(OUTPUTFILE);
サーバー側で処理するなら単純にこれだけです
#!/usr/local/bin/perl
print qq(Content-type: text/html¥n¥n);
#リモートの a.txtを
open(FILE,"a.txt");
#リモートの data/a2.txtに出力(data フォルダは書き込み許可にしておく)
open(FILE2,">data/a2.txt");
@que = <FILE>;
foreach $ax (@que){
#ココで置換します
$ax =~s/WWWWWWWW//g;
print FILE2 $ax."¥n";
}
close(FILE);
close(FILE2);
exit;
ローカルファイルの場合は、htmファイルも用意する必要があります
<HTML>
<HEAD>
<TITILE>アップロード</TITLE>
</HEAD>
<BODY>
<FORM ACTION="hatena149.cgi" ENCTYPE="multipart/form-data" METHOD="POST">
ファイル: <INPUT TYPE="file" NAME="File" SIZE="32" VALUE="a.txt"><BR>
<INPUT TYPE="submit" VALUE="送信">
</FORM>
</BODY>
</HTML>
CGIは以下のようになります
#!/usr/local/bin/perl
use CGI;
$query = new CGI;
print "Content-type: text/plain¥n¥n";
$filename = $query->param('File');
$type = $query->uploadInfo($filename)->{'Content-Type'};
# リモートにファイルを保存する場合は、コメントアウトを外します
#open(FILE2,"a2.txt");
if ($type =~ /^text¥//) {
while (<$filename>) {
$ax=$_;
$ax=~s/WWWWWWWW//g;
#ここで「WWWWWWWW」を消します
print $ax;
# リモートにファイルを保存する場合は、コメントアウトを外します
# print FILE2 $ax;
}
}
else {
print "これはテキストではありません。¥n";
}
# リモートにファイルを保存する場合は、コメントアウトを外します
# close(FILE2);
exit;
試します
ありがとうございます