トップページ⇒php
1001コメント332KB

【Perl】初心者コーナーPart9

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。01/12/28 23:21ID:SPLRvqQi
いらっしゃーい、Perlのコーディングで困ってる人のスレです。

1:自分はこう言う事がしたい。
2:それでこんな風にやってみたが・・・
3:それだとこんなエラーが出て上手く行かなかった。

1と3が無いと誰も答えられないよ、良い回答は良い質問から。
一緒に勉強しましょう。

参考書籍はこちら【【Perl,CGI】参考書籍 第2版 】
http://pc.2ch.net/test/read.cgi/php/988809842/
CGIの質問はこちら【CGIだけど、なんか質問ある?part5】
http://pc.2ch.net/test/read.cgi/php/1009331505/
その他の雑多な話題は、【CGIに依存しないPerlの話題一般】
http://pc.2ch.net/test/read.cgi/php/991313362/

過去ログ、その他の役立ち情報は>>2-10を見よう。
0237名無しさん@お腹いっぱい。02/01/19 00:07ID:???
上の100で割ったりするのは、まあ公式だ
Zellerの公式で検索してみて

ここに、日付け絡みのサンプルが色々出てるから必読
他にも役に立つしね
http://www.din.or.jp/~ohzaki/perl.htm

0238名無しさん@お腹いっぱい。02/01/19 01:59ID:tDZ3djB8
すいません・・・超初心者なんですが、よろしくおねがいします!

win98に、間違ってwinNTのPerlをインストールしてしまったんですが、
アンインストールはどうすればいいのでしょうか???

C:を「Perl」とか「NT」で探したら、Temporaryフォルダにしか
ないみたいなんで大丈夫かな?と思ったんですが、
インストーラーをもう一回起動させたら、
『指定されたサービスはすでに存在します』
ってエラーメッセージが!!!!

『アプリケーションの追加と削除』には、何もできてません。
どなたかお助けーーーー!
0239agege02/01/19 05:21ID:???
> 238
C:がダメならD:があるさ
0240Tupple3d02/01/19 05:30ID:tSYJ2BTR
すんまそん。Web制作板から来ました。

$a = 1;
$a = $a++;

Perlで$aの値はどうなりますか?
0241agege02/01/19 06:00ID:???
> 240
「すんまそん」って、出だしから寒すぎて手がかじかんでうまく答えがかけないよー。
どうしよー。
024224002/01/19 06:28ID:???
分かったー!

Perl : 1
Java : 1
C(gccだっと思う) : 2
JavaScript : 1

>>241 お前もなかなか
0243名無しさん@お腹いっぱい。02/01/19 06:34ID:???
$a = 1;
$a = $a++; # $aは 1
$a = ++$a; # $aは 2
0244名無しさん@お腹いっぱい。02/01/19 07:06ID:tDZ3djB8
上書きで無事アンインストールできたよーーーー^^
0245名無しさん@お腹いっぱい。02/01/19 07:21ID:???
>244
おめでとう
0246名無しさん@お腹いっぱい。02/01/19 15:46ID:b2nTXpDv
Flash5とcgiの絡みの勉強してるのですが、
FlashからデータをPOSTで送信しようとすると、
データが渡ってないようです。
GETだとちゃんとわたってます。
cgiはこんな感じです。(一部ですが)

#フォームデータの取得
if($ENV{'REQUEST_METHOD'} eq 'POST'){
read(STDIN,$query,$ENV{'CONTENT_LENGTH'});
}
else{
$query=$ENV{'QUERY_STRING'};
}
0247初心者02/01/20 06:05ID:+Bzlb+s3
Perlで書かれたCGIスクリプトを自分で読んで解析しています

サブルーチンの定義のところで

sub FormThList($;$)
{
   処理・・・
}

という部分をいくつも見かけます

引数にある" $;$ " という部分は何をあらわしているのでしょうか?
自分で書籍やWebを調べてみたりしたのですが、引数なのか、リフ
ァレンスなのか、それとも他のものなのか、さっぱりわかりませんでした。

どなたかお分かりの方ご教授ください。宜しくお願いいたします。
0248名無しさん@お腹いっぱい。02/01/20 15:18ID:GAoGOGYW
あげ
0249  02/01/20 17:22ID:xUMdAd4X
$_は、あれ、をあらわします。
ほら、あれもってきて。って、よく、彼女とかにいってるでしょ。
そのあれ。だよ。
0250名無しさん@お腹いっぱい。02/01/20 17:58ID:???
>>247
引数の形式を指定してる。
$はスカラー。;以降は省略可。 ほかにもいろいろ指定できる。
詳しくはperldoc perlsubか,プログラミングPerl改訂版133Pを参照のこと。
0251名無し02/01/20 21:19ID:Nggbj65w
勉強ついでに指定ディレクトリのファイル全文検索作ってみたんですけど、キーワードに日本語入れるとうまく動かないんですがなぜでしょう?

$dir = ''; # 指定ディレクトリ
$file = '.html'; # 検索対象ファイルの拡張子
$key = ''; # キーワード
opendir(DIR,$dir);
@files = readdir(DIR);
closedir(DIR);
foreach (@files){
if(/$file$/){
open(FILE,"$dir/$_");
@data = <FILE>;
close(FILE);
foreach (@data){
$seach = $seach . $_;
}
if($seach =~ /$key/i){
push(@list,$_);
}
}
}
foreach (@list){
print;
print "\n";
}
0252名無しさん@お腹いっぱい。02/01/20 21:26ID:???
>251
URLデコードをしてないとか。
「ー」が含まれてるとか。


余談だけど無駄が多いからもうちょっとシェイプアップした方がいい。
grep使うとか。
0253名無しさん@お腹いっぱい。02/01/20 23:36ID:9LP6jm+w
>>251
EUCの場合

$EUC_JP = '(?:[\x00-\x7F]|[\xA1-\xFE][\xA1-\xFE]|\x8E[\xA1-\xFE]|\x8F[\xA1-\xFE][\xA1-\xFE])';
if $seach =~ /^$EUC_JP*$key/i {
...

perlメモだかに、詳しく載ってた気がする。
0254agege02/01/21 03:26ID:???
> 250
それにしてもサブルーチンに引数の形式を指定するメリットがわかんないんだけど、
どういうことYO!

単に引数形式を明確にするだけのこと?

うーん!こんやも眠れない。
0255名無しさん@お腹いっぱい。02/01/21 03:31ID:???
>>254
眠れないんだったらperlsub読みなよ。
どういうときに使うのか書いてある。
0256名無しさん@お腹いっぱい。02/01/21 03:39ID:???
仮引き数書けない方がずっと異常です
逝っちゃってますねもう
0257agege02/01/21 03:47ID:???
> 256
なるほど、漏れが異常なのか。チョットだけ安心しました。
255さんの提案でperlsub読んでだいたいはわかりました。
それにしても今までラクダ本しか読んでなっかったからバージョンアップに伴う追加・更新部分は
未知な部分が多いネー。
0258あうあうあう02/01/21 07:42ID:???
Win98+ActivePerlで勉強しようと思うのですが、
日本語部分は(メッセージなど)EUCで書くのが正解と聞きました。
ところが、DOSプロンプトだとEUCは文字化けします。
Shift-JISで書けば、DOS上では問題ないですが・・・。
どうしたらよいですか?
print "日本語いーゆーしーだ!";
とかでやると
ニ・ワク・、。シ、譯シ、キ。シ、タ。ェ
になります。
0259名無しさん@お腹いっぱい。02/01/21 09:52ID:yXZYknLA
>258
S-JISで全然問題ない。
0260名無しさん@お腹いっぱい。02/01/21 12:43ID:O1LRho5n
フォームメールのCGIを作ってみてるんですが、半角スペースが入るとスペース
以降のデータが受取れません。

流れとしては、HTMLフォームから入力して送信ボタン→確認画面で送信ボタン→メール送信
というもので、確認画面ではスペースはちゃんと入ってて、例えば「山田 まさし」
と入るのですが、その確認画面から「送信」ボタンを押して再度同じCGIを呼びだして
データを受取ると「山田」で切れてしまうです。
$value =~ tr/+/ /;この行で送られてきたスペースコード(+)をスペースに変えて
いるのですが、再送信するときには変換されたスペースをまた(+)のようなコードに
戻してあげないとダメなんでしょうか?
試しに普通の+に戻してみたらそのまま+が出てきてしまいました。。
わかりづらくてゴメナサイ、アドバイス貰えればありがたいです。
0261aaa02/01/21 13:36ID:7eJzqhDP
Perl関連のほしい本があるんですが、その本が5.6対応では
ありませんでした。(elements programming with Perlです。)
5.5?やってから5.6本やってもおそくないですか?
あと、支障とかないですか?
0262茶文字 ◆xELvisFU 02/01/21 15:57ID:0ovwchs4
テキストファイルを読み込んで、1行目を<title>と<h1>に、2行目を<h2>にするようにしたいのです。

open FILE,"xxx.dat";
@page = split(/\n/,<FILE>);

print <<"EOH";
<html>
<head>
<title>$page[0]</title>
</head>
<body>
<h1>$page[0]</h1>
<h2>$page[1]</h2>
EOH

$count = 0;
foreach $i(@page){
if ($count > 1){
print $page[$i];
}
}
print "</body></html>";

close FILE;

2行目を$page[1]として<h2>に、3行目以降をforeachで順に出力するつもりで
以上のように書いたのですが、$page[2]以降を取得できないようです。
どこで勘違いしているのでしょうか?
0263名無しさん@お腹いっぱい。02/01/21 16:08ID:???
>262
>foreach $i(@page){
ここに問題がある。
この場合、$iには何が入るのかな?
俺は数字じゃないように思えるんだが。

>foreach $i(1 .. $#page){
との違いはわかるかな?
0264名無しさん@お腹いっぱい。02/01/21 16:09ID:???
>foreach $i(2 .. $#page){
こっちが正しいな。
修正する前に書き込んじまった、スマソ。

あともう一つ質問。
$countはずっと0のままでいいのかな?
数字が全然増えてないから、if文の中に入れないようにも見えるぞ。
026525102/01/21 16:14ID:???
>>252
URLをデコードするってどういうことでしょうか?
よくわからないのですが。
026625102/01/21 16:17ID:???
検索したらすぐ出てきました。迷惑かけてすいません。
逝ってきます。
0267茶文字 ◆xELvisFU 02/01/21 16:21ID:???
>>264
をっとスマソ
うまくいかないので別の方法で無理やり辻褄あわせてて、もとのスクリプトと
違うこと書いちゃいました。

$count++をforeachの最後に入れて、print $page[$count];にしてたはず・・・

うがー なんでこんなところにひっかかってんだ私;
0268名無しさん@お腹いっぱい。02/01/21 16:25ID:yxhIL91Y
>267

俺ならこんな感じ。チェックしてない。

open (FILE,"xxx.dat"); @page = (<FILE>); close (FILE);
$page[0] =~ s/\n//g;
$page[1] =~ s/\n//g;

print <<"EOH";
Content-type: text/html; charset=Shift_JIS

<html>
<head>
<title>$page[0]</title>
</head>
<body>
<h1>$page[0]</h1>
<h2>$page[1]</h2>
EOH

$count = @page;
for($i = 2;$i <= $count; ++$i) {
$$page[$i] =~ s/\n/<BR>\n/g;
print $page[$i];
}
print "</body></html>";
0269名無しさん@お腹いっぱい。02/01/21 16:26ID:yxhIL91Y
>268
ミス
>$$page[$i] =~ s/\n/<BR>\n/g;
$一個おおいっすスマソ
0270名無しさん@お腹いっぱい。02/01/21 16:28ID:???
>>260
print "Content-Type: text/plain\n\n";
print $ENV{QUERY_STRING}
とかやってデータを確認したら?
確認後のエンコード周りがあやしい。

>>261
5.6触ったこと無いが,
Perl5.6は仕様を足しただけみたいだから
Perl5やってからでも特に支障無いと思う。
0271茶文字 ◆xELvisFU 02/01/21 16:28ID:???
>>268
あ 何となくどこで勘違いしているのかわかったかも。
さっそく試して報告するです。
ありがとうございました。
0272 02/01/21 16:30ID:VXT1KPc/
shift @page;
foreach (@page){
print $_;
}
じゃいけんの?
$countってどこでインクリメントするの?
0273  02/01/21 16:36ID:rALZtRCf
print <<"EOH";
Content-type: text/html; charset=Shift_JIS

<html>
<head>
<title>$page[0]</title>
</head>
<body>
<h1>shift(@page)</h1>
<h2>shift(@page)</h2>
EOH

foreach (@page){
print $_;
}
具体的にはこうか?
0274 02/01/21 16:38ID:pTKsFCnA
あ、全然だめだ。スマソ。逝ってきます。
0275傍観者02/01/21 16:40ID:bIKApu3O
268完璧だと思うんだけど、文句いう奴いるんだよな
0276ほげ02/01/21 16:41ID:bIKApu3O
268でいいと思われ
0277茶文字 ◆xELvisFU 02/01/21 16:50ID:???
できました。
268は完璧でした。

>>272
$countがインクリメントしていないのは私の転記ミスです。
0278名無しさん@お腹いっぱい。02/01/21 16:52ID:???
>>275-276 = 268
名前変えてもID出てるぞ。
0279名無しさん@お腹いっぱい。02/01/21 16:53ID:???
>>275-276
TMTOWTDIってことで、色々出てくるのはいいんじゃねーの。
0280名無しさん@お腹いっぱい。02/01/21 16:55ID:???
>>273
おしい。
ヒアドキュメントの中では @{[shift @hoge]} のように使うと吉。
0281名無しさん@お腹いっぱい。02/01/21 17:00ID:yxhIL91Y
あ!、もう出来たんだね。
でも、せっかく作ってきたので書いちゃう。

どうしてもforeach使うんだったらこんな感じ。
やっぱしチェックしてない。

open (FILE,"xxx.dat"); @page = (<FILE>); close (FILE);
$page[0] =~ s/\n//g;
$page[1] =~ s/\n//g;

print <<"EOH";
Content-type: text/html; charset=Shift_JIS

<html>
<head>
<title>$page[0]</title>
</head>
<body>
<h1>$page[0]</h1>
<h2>$page[1]</h2>
EOH

$i = 0;
foreach (@page){
if ($i ne "0" && $i ne "1"){
$_ =~ s/\n/<BR>\n/g; print $_;
}
++$i;
}
print "</body></html>";
0282名無しさん@お腹いっぱい。02/01/21 17:01ID:yxhIL91Y
>278
お、おれ?
おれかよ!(笑)
0283 02/01/21 17:01ID:???
open (FILE,"xxx.dat");
@page = (<FILE>);
close (FILE);
$title = shift(@page);
$h2 = shift(@page);
print <<"EOH";
Content-type: text/html; charset=Shift_JIS

<html>
<head>
<title>$title</title>
</head>
<body>
<h1>$title</h1>
<h2>$h2</h2>
@page;
</body></html>
EOH
0284茶文字 ◆xELvisFU 02/01/21 17:11ID:???
みなさんありがとう。
それぞれのサンプルもきちんと見て勉強させてもらうです。
WebProg板サイコー(・∀・)イイ!
0285名無しさん@お腹いっぱい。02/01/21 17:14ID:???
>>282スマソ勘違い
ということで>>275-276はギャフンと言え
0286名無しさん@お腹いっぱい。02/01/21 17:19ID:???
改行をつけたい場合は2回目のshiftのあとに
@page = map {$_ . <BR>} @page;
だね。
0287 02/01/21 17:31ID:???
@page = map {$_ . "<BR>"} @page;
やろがぁ!
@page;のセミコロンはいらん。オケ?
0288名無しさん@お腹いっぱい。02/01/21 17:36ID:???
しょうもない質問だと途端に元気になるな
このスレの回答者は  (笑)
0289茶文字 ◆xELvisFU 02/01/21 17:40ID:???
>>288
しょうもない質問で悪かったな(w
0290aaa02/01/21 17:42ID:7eJzqhDP
>270 レスどもです。
0291名無しさん@お腹いっぱい。02/01/21 19:00ID:6X0/37gM
GUIで次のようなプログラムを書け、という問題が学校でだされました。
ちんぷんかんぷんです。しかもスレ違いの予感もしてます。ごめんなさい。

プログラムはグレー色のウィンドウで表すこと。
しかもユーザーに赤、青、緑から好きな色を選ばせられるようにすること。
なおかつ1度ではなく何度もユーザーにその色を何度も変える事ができるようにすること。

誰か教えてください。
0292名無しさん@お腹いっぱい。02/01/21 19:06ID:???
プラットフォームを書くこと。
0293名無しさん@お腹いっぱい。02/01/21 19:12ID:6X0/37gM
ほんとごめんなさい
プラットフォームとは何ですか・・・?
0294名無しさん@お腹いっぱい。02/01/21 19:13ID:???
Windowsとか、Linux, BSD, HPとか。
それと、言語はPerlなの?

0295名無しさん@お腹いっぱい。02/01/21 19:19ID:???
>>293 頑張れ!
君の開発環境を書くのだ。

しかし、宿題をスレに投げる という安直さがゴルァ!だ。
0296名無しさん@お腹いっぱい。02/01/21 19:27ID:6X0/37gM
全て英語で書かれてて、なんだか注文をそのまま英語にしたみたいです

Your name? Lucy
Occupation/Job Title? Comedian

Nice to meet you Lucy, Comedian!

名前を入れればそのままその名前が文章につかわれる
ってなのを前回説明されました。
これはPerlなのでしょうか?

0297名無しさん@お腹いっぱい。02/01/21 19:34ID:???
>>296
うーん・・・・・ 他になんかないの? 
全部英語で書かれてて、一行目が「#!/usr/local/bin/perl」です、とか。
0298名無しさん@お腹いっぱい。02/01/21 19:36ID:???
291と296の関係がよくわからん。
取りあえず、環境を書いてくれ。
UNIX系なのか、Windowsなのかぐらいは判別できるだろ?
0299名無しさん@お腹いっぱい。02/01/21 19:40ID:6X0/37gM
書かれてないんです。ってか質問しか書いてないので・・・。
とりあえず次の授業にきっぱりと出来ませんでしたって胸はって言います。
一緒に考えて下さってありがとうございました。
ところで、授業のレジュメにAlgorithmも学ぼうって書いてあります。
このAlgorithmもなにかの言語なのでしょうか?
0300名無しさん@お腹いっぱい。02/01/21 19:49ID:???
>>291に関連して素朴な疑問。
PerlでGUIのプログラムなんて出来ないよね?
ただ、適切なスレに誘導するために情報聞き出してるんだよね?
まさかPerlで書けるから聞いてるんじゃないよね?

ビクビク…。
0301名無しさん@お腹いっぱい。02/01/21 19:51ID:???
何のための言語バインディングだよ。素人か?
0302名無しさん@お腹いっぱい。02/01/21 19:52ID:???
>>299
ていうか授業出てなかったろ…。
出てれば絶対こんな質問しないぞ…。
0303名無しさん@お腹いっぱい。02/01/21 19:56ID:???
Perl, Ruby, Python, とか大抵ののスクリプト言語でGtk, Tk, Qt, Win32用のバインディングが用意されてるだろ。
0304名無しさん@お腹いっぱい。02/01/21 19:56ID:6X0/37gM
はい、素人です
やっぱりどうも難しいのでもっと初心者用のスレから出直してきます
ありがとうございました。。。
0305名無しさん@お腹いっぱい。02/01/21 19:58ID:???
>>304
>301は>300向けであって、あんたに言ってるんじゃないと思うぞ。
0306名無しさん@お腹いっぱい。02/01/21 20:01ID:hWcQ0KB7
>296
どう見てもこれはCの課題だよな。
0307名無しさん@お腹いっぱい。02/01/21 20:02ID:hWcQ0KB7
>291
VBかVCの課題だろ?
0308 02/01/21 20:07ID:OlNKxLTk
★必見★
パチマガで池上蓮から「旧友の自殺狂言騒動に抑えきれない嫌悪感」
で晒された本人(謎の人物)が池上に対して怒りまくってるぞ!!

謎の人物ホームページ↓
http://www.geocities.co.jp/Bookend-Hemingway/4715/

関連スレッド
謎の人物公式スレッド↓
http://kaba.2ch.net/test/read.cgi/pachi/1009686980/l50
030930002/01/21 20:13ID:???
>>301
はい。初心者です。
みんな当然のように答えてたから疑問に思ったです。
言語バインディング、検索逝ってきます。
ありがと。
031030102/01/21 20:14ID:???
>>300 きつい事言ってごめんな。
0311茶文字 ◆d38VidMY 02/01/21 20:15ID:???
>>306-307
ってことは、ここで聞いたコーディングがコンパイルされる可能性が
あったわけですね?(w

>>308
マルチポストウザイYo!
0312名無しさん@お腹いっぱい。02/01/21 20:18ID:???
>>311
何を聞きたいの?
もうちょっと分かりやすく書いてみて
031330002/01/21 20:19ID:???
ていうか、やっぱり釈然としないんだけど、
PerlでWindowsアプリケーションは作れないよね?
なんつーか、
> プログラムはグレー色のウィンドウで表すこと。
とか。。
それと同様にX Window のアプリケーションも作れないよね?
ってことはGUIのプログラムって作れないんでは?

んー。どこの考え方が間違ってるんだろう。。
「GUI」を勘違いしてるのかな…。
0314名無しさん@お腹いっぱい。02/01/21 20:26ID:???
>>313
一例。
http://freshmeat.net/img/screenshots/19044.jpg
(freshmeatで"Perl Gtk"とか"Perl Tk"で検索してみ。併せて100以上でてくるから)
検索エンジンなどでGtk-Perlとか、Perl/Tk, Perl/Qt. PythonならPyUI, PyQtとかを調べるよろし。

0315名無しさん@お腹いっぱい。02/01/21 20:27ID:???
>>311 あのさ、重箱の隅だけど、「コーディング」はコンパイル出来ないよ
(w とか言わずに一緒に勉強しようよ
>>313
Perlでは出来ないけど、TkとかGtk使えばperlの文法で出来るんだから
全然間違えて無いよ。
もし無くてもPerlが叩けるライブラリ書けば良いでしょ?
0316名無しさん@お腹いっぱい。02/01/21 20:30ID:???
質問者と同レベルの人が居るのがおかしいね
0317名無しさん@お腹いっぱい。02/01/21 20:35ID:hWcQ0KB7
>315
TkとかGtkを課題に出す情報処理系の宿題かこれ?
というそもそも論に帰ってしまった私です。
031830002/01/21 20:35ID:???
>>314-315
なるほど。ありがとうございます。

>>316
初心者だけどなんか役に立つこと出てくるかなぁと思って
かちゅ〜しゃのお気に入りに入れて巡回してますが。。
0319名無しさん@お腹いっぱい。02/01/21 20:50ID:???
311の意味が分からんのは俺だけかな・・・・
0320茶文字 ◆d38VidMY 02/01/21 21:01ID:???
311はことばの用法を間違ってましたスマソ
聞き流してくだされ>all

で、話は変わりますが。

Webサーバ上の特定のディレクトリにあるファイルをリストアップして、
ファイル一覧を表示するスクリプトを作りました。
せっかくだから各ファイルの更新日時を自動的に表示させたいのですが、
これはPerlでは無理なのでしょうか?

.cgiでSSIを許可するのはなんか怖いし、JavaScriptは自分自身あまり
ONにしないので、できたら避けたい今日この頃なんですが。
0321名無しさん@お腹いっぱい。02/01/21 21:15ID:???
んー、自動的と言うのはどう言う意味だろう(CGI殆ど書かないので。。)
基本的にそのディレクトリに有るファイルが、CGIのみから更新されるなら
SSIでincludeする(execは殺す)為のファイルを書き出すだけで良い。

もし、CGIが感知しない部分でダイナミックに更新されるなら
素直にCGIで表示するか、呼び出し元のHTMLを書き換えるしか無いんじゃ
無いかな
0322茶文字 ◆d38VidMY 02/01/21 21:32ID:???
>>321
早レスさんくす。

実はファイルリスト表示も各ファイルの内容閲覧も同じスクリプトでまかなっています(リストされるファイルはすべてHTMLのbody部分です)。

例)
hoge.cgi
 →引数がない場合はファイルリストを表示
hoge.cgi?page=020121
 →ファイル名が020121のファイルをbody部に取り込んで表示

なので、更新日時を表示するときの拡張子が.cgiなわけです。
SSIを使うには、.cgiからSSIを使えるようにしなければならないわけで、
これは320に書いたように避けたいのです。

てことは、ファイルリスト表示は.shtmlで出力してやるのが無難っぽいですね。
短いスクリプトなので、頭の体操だと思って最初から組み直してみます。
ありがとうございました。
0323茶文字 ◆d38VidMY 02/01/21 21:34ID:???
と書いてから気がついたのだけど、
組み直さなくてもHTML出力部分だけ付け足して、
そのあとリダイレクトすればいいのか?
0324名無しさん@お腹いっぱい。02/01/21 23:26ID:???
>>322
> hoge.cgi?page=020121
Taint check をしっかりとやるようにね。
0325名無しさん@お腹いっぱい。02/01/21 23:34ID:???
初めてご質問をさせていただきます。今、
$abcd = "AAAA";
open(CF, "./a.txt") || die "Can't open Header File $!";
 while (<CF>){
chop;
print;
}
close;
と記述しました。
a.txtには
$abcd
と書きました。ですが、どうしても上記プログラムを実行したら
$abcdと表示されるだけでAAAAと表示されません。どうにかして
$abcdを変数としてファイルより読みだすことはできないでしょうか?
0326名無しさん@お腹いっぱい。02/01/21 23:40ID:???
print eval($_);
かな?
0327名無しさん@お腹いっぱい。02/01/21 23:40ID:???
eval
032832502/01/21 23:51ID:???
>>326>>327
ありがとうございます。早速やってみます。
evalは、shでしか使ったことありませんでした。
勉強します
0329名無しさん@お腹いっぱい。02/01/22 01:09ID:???
>325=328
細かいことだけど、自分がたずねる質問に「ご」をつけるのは
ちょっと変だと思うよ。
0330名無しさん@お腹いっぱい。02/01/22 10:12ID:efarCwHc
すみません。お教えください
日記帳のように画像アップして1行コメントを入れるスクリプトを書いてるんですが
うまくいきません。
どこかによいサンプルはないでしょうか?
0331名無しさん@お腹いっぱい。02/01/22 10:36ID:???
>>330
http://pc.2ch.net/test/read.cgi/php/1003132904/l50
0332名無しさん@お腹いっぱい。02/01/23 04:57ID:sT5Qn28R
すみません。質問なんですが、
htmlファイル内の&を%44になおすプログラムを作っていて
以下のとおりやってはみたもののうまくいきません。
#!/usr/local/bib/perl

while(<stdin>){
s/&;/%44;/;
print;
}

どうしても置き換えてくれません。
教えてください。
0333名無しさん@お腹いっぱい。02/01/23 05:16ID:???
>>332
Perlへのパス
stdinからデータが読み込まれているか
検索・置換する文字列
を確認してみてわ
033433202/01/23 07:16ID:sT5Qn28R
>333
遅れてすみません
333さんがおっしゃられるところは確認しました。
自分で気になっているところは
test→test1みたいな普通の文字の置き換えはできるのですが
&とか%がはいっているとまったく駄目なのです。
どうしたら解決できるかわからなくて。。。
0335名無しさん@お腹いっぱい。02/01/23 09:25ID:fLlnsoLj
>>334 ほい。 

#!/usr/local/bin/perl

while(<stdin>){
s/&/%44/g;
print;
}
0336名無しさん@お腹いっぱい。02/01/23 19:47ID:SS/bYptO
メール件名をMIMEエンコードしようと思い、
CGIファイルと同ディレクトリに「mimew.pl」
http://www.cc.rim.or.jp/~ikuta/mime_pls/index.html を設置して、
CGI内のメールのヘッダ情報記述部分で
$mimew = './mimew.pl';
require $mimew;
$subject = "[カタログ請求]";
$subject2 = &mimeencode($subject);
open (SENDMAIL, "| $nkf | $sendmail -t -n") || die;
print SENDMAIL "To: $recieve\n";
print SENDMAIL "Bcc: $bcc\n";
print SENDMAIL "From: $mail\n";
print SENDMAIL "Reply-To: $mail\n";
print SENDMAIL "Subject: $subject2\n";
print SENDMAIL "Content-Type: text/plain; charset=\"iso-2022-jp\"\n";
print SENDMAIL "Content-Transfer-Encoding: 7bit\n\n";
上記のようにしたのですが、エンコードされません。
お助け。。。
0337名無しさん@お腹いっぱい。02/01/23 20:15ID:???
>>336 
$nkf = '/usr/local/bin/nkf';
$sendmail = '/usr/sbin/sendmail';
$mimew = '/フルパス書いてちょ〜/mimew.pl';

でどうよ。

■ このスレッドは過去ログ倉庫に格納されています