【Perl】初心者コーナー Part14
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
02/07/18 16:34ID:jemWJhH31:自分はこう言う事がしたい。
2:それでこんな風にやってみたが・・・
3:それだとこんなエラーが出て上手く行かなかった。
1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。
CGIだけど、なんか質問ある? Part 6 (その2)
http://pc.2ch.net/test/read.cgi/php/1025930486/
参考書籍の話題は【【Perl,CGI】参考書籍 第2版】
http://pc.2ch.net/test/read.cgi/php/988809842/
その他の雑多な話題は、【CGIに依存しないPerlの話題一般】
http://pc.2ch.net/test/read.cgi/php/991313362/
スクリプトの改造依頼は 【スクリプト改造工房 Part4】
http://pc.2ch.net/test/read.cgi/php/1012839651/
過去ログ、その他の役立ち情報は>>2-10あたりを見よう。
0514nobodyさん
02/07/28 20:07ID:???>raとrarの区別ってどうするんですか?
>拡張子はにててもかなり違うんですが、、、。
この質問の頭の悪さはTNT火薬500万トン級の破壊力があります
そんな君は絶滅危惧種並みの、イッツ馬鹿モンキーなんですよ
OK?
0515nobodyさん
02/07/28 20:08ID:???もう見てるコッチが恥ずかしくなってしまう。
おまけに逆切れ
バカな事をバカだと指摘してあげたのに
「夏ですね」だって (惨
ああ、バカのココナッツパラダイス
バカのオナニーは永遠に続くのであった
0517nobodyさん
02/07/28 20:13ID:???生ゴミに失礼です、生ゴミはエネルギーも再生資源にもなり得ます
2chで
>raとrarの区別ってどうするんですか?
と聞くホームラン馬鹿には再生の余地も有りません
絶望的です
>>516
痛いクソ野郎に失礼(略
0518nobodyさん
02/07/28 20:25ID:???ra$
0519( ´,_ゝ`)
02/07/28 20:28ID:???拡張子判別で
raとrarの区別ってどうするんですか?
拡張子はにててもかなり違うんですが、、、。
0520nobodyさん
02/07/28 20:32ID:???いちいち煽ってレスが流れるのは勿体ない。
0521nobodyさん
02/07/28 21:04ID:ODyMXFdCs///でした。
>504
スラッシュは含まれています。アスキーコードを勉強してください。
0522nobodyさん
02/07/28 21:16ID:???うるせーっつってんの 恥さらし犬畜生が
http:www.hoge
なんてURLはアルツハイマーのお前の脳内にしか存在しないの
ここは現実世界のBBSですよ
妄想の旅に帰りなさい
0523nobodyさん
02/07/28 21:18ID:???ムカつくぜ
0524nobodyさん
02/07/28 22:05ID:???. |(・∀・)|
. | ̄ ̄ ̄ ジサクジエン共和国
△
△l |
__△|_.田 |△_____
|__|__門_|__|_____|_____
0525nobodyさん
02/07/28 22:31ID:???http://www.din.or.jp/~ohzaki/perl.htm
折角書いたんだからリンク先を良く読むように
もし本当に存在するURIのみを抽出したいのであれば
498では全く不完全。
どうせ不完全なのだから、500では簡単の為に書いた
あと、¥1はこの場合あなたの望んだ動作をしないと
思ったので、間違えてると書いた
分かってるなら聞くなよっつー事だ
0526nobodyさん
02/07/29 02:02ID:3jabpJuBこれどうやって変えるの?
出来るだけくわしく頼むよ
0527nobodyさん
02/07/29 02:08ID:???0528nobodyさん
02/07/29 02:24ID:3jabpJuB0529nobodyさん
02/07/29 02:26ID:???0530nobodyさん
02/07/29 02:26ID:yQQSPnn50531nobodyさん
02/07/29 02:26ID:???1:自分はこう言う事がしたい。
2:それでこんな風にやってみたが・・・
3:それだとこんなエラーが出て上手く行かなかった。
1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。
0532nobodyさん
02/07/29 02:29ID:3jabpJuB755とか777とか言うの
これどうやって変えるの?
出来るだけくわしく頼むよ
だってのに(ワラ
0533nobodyさん
02/07/29 02:34ID:???0534nobodyさん
02/07/29 14:09ID:???0537nobodyさん
02/07/29 18:20ID:???原因がわからずこまっています以下がそのコードの一部です
<table border="2" cellpadding="10" bgcolor="#FFFFFF" width="100%"><tr><td>
<b>新規記事作成フォーム</b>
<form method="POST" action="$script">
<input type=hidden name=cmd value="write">
<table width="550">
<tr><td align="left" width="50">名 前</td>
<td align="left" width="100"><input size="40" type="text" name=name></td></tr>
<tr><td align="left" width="50">E-mail</td>
<td align="left" width="200"><input size="40" type="text" name=email></td></tr>
<tr><td align="left" width="50">題 名</td>
<td align="left" width="100"><input size="40" type="text" name=title></td></tr>
<tr><td align="left" width="50">U R L</td>
<td align="left" width="200"><input size="40" type="text" name=url></td></tr>
<tr><td>コメント</td><td align="left" colspan="3">
<textarea name=message rows="5" cols="61"></textarea><br>
<input type=submit value="新規投稿"></form>
</td></tr></table></td></tr></table>
0538nobodyさん
02/07/29 18:22ID:???if($FORM{'cmd'} eq 'write') {&write;}
としてるんですが新規投稿ボタンを押しても&writeに飛んでくれないのです
ためしにprint "$FORM{'cmd'}";とやってみましたが空白でした。
0539nobodyさん
02/07/29 18:24ID:???0541FLASHのNOWLOADINGのような動作したい
02/07/29 19:38ID:Ph2A5ZX/メール送信の方法としては、メールアドレスが入った@MAILという配列に対して、
foreach $mail @DATA{
#$mailに対してその都度sendmailをオープンして送信
#1秒スリープ
}
という感じです。
サーバーの規定でsendmailは多くとも1秒に一通の割合で、という注意があるため、
1秒スリープしています。
流れとしてはメール本文編集画面から、送信ボタンを押すと上記のように
メール送信を始めて、全部終わったところで「送信完了しました」という画面を出すのですが、
送信件数が少ないうちはいいのですが、件数が多くなってくると別にエラーが起きているわけでもないのに、
タイムアウトになるのか、「送信完了しました」画面が出ません。
(エラーならinternal servererrorになりますが、画面はタイムアウトの時と同じ画面です。)
そこで、とりあえずFLASHで良くやるNOW LOADING...見たいな感じで、
「現在送信中」の画面を出しといて、バックで送信処理を続けて、送信が終わったら「送信完了しました」
という画面に移動したいのですが。
現在やり方が全く思いつきません。
0542FLASHのNOWLOADINGのような動作したい
02/07/29 19:41ID:Ph2A5ZX/#$mailに対してその都度sendmailをオープンして送信
#1秒スリープ
}
配列の名前間違えました。
0543FLASHのNOWLOADINGのような動作したい
02/07/29 19:47ID:Ph2A5ZX/print "Location: nowloading.html";
でとかにとばして「送信中」と書いたHTMLに飛ばして、
foreach $mail @MAIL{
#$mailに対してその都度sendmailをオープンして送信
#1秒スリープ
}
とやって、そのあとに
「送信完了」画面を出す。
でいけるかな?ちょっとやってみますが。
0544FLASHのNOWLOADINGのような動作したい
02/07/29 20:00ID:Ph2A5ZX/が表示されたまま。
無理でした。
0545nobodyさん
02/07/29 20:05ID:???あげんな。
思うのはここへきてる人間がもしあなたにそれを教えてさ
あんたが儲かるわけでしょ?バイトか仕事かしらんけど。
露骨過ぎだよ、、アホだ。あんたが俺になんかしてくれるのか?
なら答えてやるぞ。
それともネタか?違うだろうなあげてるもんな。
0546スレ違いだよな
02/07/29 20:39ID:???メタタグ入れて読ませたり出来るけど、共用してるだろから
ユニークIDとかトランザクション辺りでカッコ悪くなるでしょ
それがCGIの限界。
と言うわけで、Nowloading.htmlの推奨内容
どうせsendmailの先で死ぬ事も有るんだし (笑
メールを送信しました、上手く行くかどうかは分かりません (^o^)/~~
0547nobodyさん
02/07/29 20:49ID:???my($name,$email,$url,$title,$message) = ($FORM{'name'},$FORM{'email'},$FORM{'url'},$FORM{'title'},$FORM{'message'},);
こんな感じですがこれ以前に
if($FORM{'cmd'} eq "write")に反応しないんです
0548nobodyさん
02/07/29 20:54ID:???どうやって$FORM{'cmd'}に入れてるんだ?
勝手に入るとか思ってたりはしないよな?
まさかそこまで馬鹿じゃないよな?
夏とは言えそこまで馬鹿はいないと信じたいな。
0549nobodyさん
02/07/29 21:21ID:zYJTXqe4所有者がapacheとなります。この所有者は好きなのに変えられないのですか?
0550474
02/07/29 22:10ID:???マニュアルはperldocやweb等いろいろと見てみたのですが、全然ロックに関する
記述が無いんです。(T_T
しかし、dbと名が付いているくらいだからロックくらいはしてくれるだろう、
ということでとりあえずsdbmでやってみようかな、って思ってます。
でも微妙に気になる。(w
0551nobodyさん
02/07/29 22:15ID:???read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
local(@pairs) = split(/&/,$buffer);
foreach $pair(@pairs){
local($name,$value) = split(/=/,$pair);
$value =~ tr/+/ /;
$value =~ s/%([\dA-Z]{2})/pack("H2", $1 )/eg;
$FORM{$name} = $value;
}
0553nobodyさん
02/07/29 22:45ID:7AOu/QAwをウマーク変えて
□□□(文字列)→<font color="#ff0000">★</font>
な感じに出来ないでしょうか?
0554nobodyさん
02/07/29 22:47ID:???0555nobodyさん
02/07/29 22:50ID:7AOu/QAwやり方を教えて頂ければこちら側としては非常にありがたいのですが…
0559nobodyさん
02/07/29 22:55ID:???いんたーなるさーばーえらー
0560nobodyさん
02/07/29 22:57ID:7AOu/QAwありがとうごだいます。
試してみます。
0562nobodyさん
02/07/29 22:59ID:om5W19We本はリャマ第2版、 Vine2.5+Bashでしゅ。
第三章の問題1ですが、要は、キーボードから
111
222
333
(C-d)←EOFを入れる。
と入力したら、
333
222
111
と表示するプログラムを書け、という主旨だと思います。
解答は、
print "Enter the list of strings\n";
@list = <STDIN>;
@reverselist = reverse @list;
print @reverselist;
となってます。オイラの答は、
@strigns = <STDIN>;
@result = reverse(@strings);
print "@result";
です。変数名と1行目は本論でないので置いとくとして、問題はこれを実行すると、
333
222
111
と2行目以下、行頭にスペースが入ってしまうことです。
違いは、print のトコで、" " で括るか、括らないかの違いなんすが、
この例では、" " はどのような役目を果たしているのでざんしょ?
それと、reverseの引数はカッコ無しでも有りでも変わらないようなのですが、
あっても無くてもいいのでしょうか?
よろしこおながいします。
0563nobodyさん
02/07/29 23:06ID:???わりぃ。
間違えてた。
$right =~ s/□□□/<font color="\#ff0000">★<\/font>/g;
0564555
02/07/29 23:08ID:7AOu/QAw再度トゥライしてみます。
0565555
02/07/29 23:19ID:7AOu/QAw出来ました。
本当にありがとうごだいました。
0566nobodyさん
02/07/29 23:20ID:???と言うか、配列を ” で囲んでprintfに投げると
デフォルトの区切り子を挿入しちゃうんですよ。
$. と $” だったかを弄って見れば分かる筈
@list = qw(hoge foo bar);
print @list;
print "\n";
print "@list";
0567nobodyさん
02/07/29 23:23ID:???"" は普通の文字列の書き方。変数展開とか \ のエスケープとか有りの。配列
変数も展開してくれるそうで。
3.7 配列を文字列中に展開する
「同様に、配列変数から…間にスペースをはさんで、順番に展開されます」
だそうです。実際には、特殊変数 $" の値で区切られるはず。"" で囲まずに
print する場合には、$, (デフォルトは空文字列) で区切られます。
> それと、reverseの引数はカッコ無しでも有りでも変わらないようなのですが、
> あっても無くてもいいのでしょうか?
この場合には無くてもいいけど、必要な場合もあるらしい。この辺は、漏れも
よく分らない。考えるのが面倒なので、大抵 () を付けるようにしてるけど。
0568562
02/07/30 00:12ID:hgHyxKDSなるほど。
$" と $, はまだ勉強していないのでよく分からないけど、
" " の有無による違いは何となく分かりました。
引数のカッコ、とりあえず付けとけば問題無し、ということで
原則かっこ付きで逝きます。
どうもありがとうございました。
0569nobodyさん
02/07/30 10:04ID:???@dataに
2<>名無しさん<>mail@***.com<>http://www.***.com/<>てすと<>てすと<>
1<>名無しさん<>mail@***.com<>http://www.***.com/<>てすと<>てすと<>
の2行がはいっていて1行目の「2」だけを取り出したいのですが
$no = (split(/<>/,$data[0])[0]);
とやってもできませんでした。どうやればいいのでしょうか?
0570nobodyさん
02/07/30 10:07ID:nD+VMZzMここでスレを調べなされ
0571nobodyさん
02/07/30 10:16ID:???所有者がapacheとなります。この所有者は好きなのに変えられないのですか?
0573nobodyさん
02/07/30 10:56ID:???@new = @old;
でいいですか?
試したら一応出来ましたけど。
0574nobodyさん
02/07/30 11:22ID:???これの \Q \E の意味が良くわからないです。
0575nobodyさん
02/07/30 11:30ID:???基本的に変えられませんが、mo-musu だったら変更可です。
やり方:
`chown mo-musu.mo-musu filename`;
0576nobodyさん
02/07/30 11:50ID:???www.kiwi-us.com/~mizusawa//penguin/DATA/dlcount/dlcount.cgi?file=macwwwsrch3097_fol.zip
&jcode'convert(*word, "sjis");
こうやったんですけどうまくいかないです。
0580576
02/07/30 13:37ID:???で、今は普通にSJISでperlを書いています。
>perl スクリプトを EUC-JP で書き, 漢字コードが EUC-JP である日本語を処理するというのが、
>perl で日本語を扱うときに一番問題が起きにくい方法です。
という事はスクリプトを保存する時のコードをEUCに変更した方がいいんでしょうか。
FORMのデコードも全部EUCに変換しなきゃいけないですよね。
0582576
02/07/30 13:59ID:???0584nobodyさん
02/07/30 19:11ID:???aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
と長い半角文字を入力すると記事を表示する枠が勝手に広がってしまいます。
どうすれば枠の幅はそのままで記事は改行されてきれいに収まるように出来るでしょうか?
したり、見た人のホスト名を記録するフリーのPerlを探してます。
どこかにありませんか?教えてください。
プログラムは組めませんが、設置する基本的な知識はあります。
よろしくお願いします。
0587nobodyさん
02/07/30 21:00ID:???だけど検索することはできないんだね
0588nobodyさん
02/07/30 21:11ID:w4X2IPfe0589nobodyさん
02/07/30 21:24ID:???検索してるんだけど、見つからないんだな。
カウントするヤシはイパーイあるんだけど、ログを残すのが無い。
>>590
どこで聞けばいいのだ?
プログラム板は初めてで、初心者の文字があったもんで・・・
0592nobodyさん
02/07/30 23:08ID:???my $hoge;
my $hoge2;
と
my $hoge, $hoge2;
はどう違うんですか?
検索もして自分でも試しましたが答えを見つけることが出来ませんでした。
ご教授お願いします。
0593nobodyさん
02/07/30 23:56ID:???って、全然違うじゃん。
> my $hoge, $hoge2;
myが効いてるのは$hogeだけ。my( $hoge, $hoge2);で上と同じ。
0595nobodyさん
02/07/31 01:01ID:???523 名前:nobodyさん 投稿日:2002/07/28(日) 21:18 ID:???
クソの分際で生意気なチンポ猿だな全く
ムカつくぜ
0597nobodyさん
02/07/31 01:24ID:S7Hc+7gV@X = ("A","B","C","D")
があって、BとCの間にEをつっこむ何かよい手はないでしょうか。
結果的に、
@X = ("A","B","E","C","D")
を作りたいのです。よろしくお願いいたします。
0598nobodyさん
02/07/31 01:39ID:I1Mr+tD00600nobodyさん
02/07/31 02:54ID:???これ以外でWEBページを取得する方法はありますか?
現在借りているサーバーにはモジュールがありやがりやせん。
0601nobodyさん
02/07/31 03:06ID:???面倒なのでコピペ
お前これみて分るか?
use Socket;
$r1=shift(@ARGV);
$html=shift(@ARGV);
$port = 80;
$host = "$r1";
$filename = "$html";
$ipaddress = inet_aton("$host");
$address = pack_sockaddr_in($port,$ipaddress);
socket(SOCKET,2,1,0);
connect(SOCKET,$address);
select(SOCKET);
$ |= 1;
select(STDOUT);
print SOCKET "GET $filename HTTP/1.0\r\n";
print SOCKET "HOST: $host";
print SOCKET "User-Agent: Q51-A";
print SOCKET "Accept-Encoding: gzip";
print SOCKET "\r\n\n";
while(<SOCKET>){
print $_;
}
0602nobodyさん
02/07/31 03:13ID:???LWPは標準モジュールじゃないです。
ActivePerlとかLinuxのディストリには入ってるがな。
ラクダ本くらいは買え。6章にソケット例が書いてある。
0603nobodyさん
02/07/31 03:30ID:y5qu4VWq$a = "abcd";
$a = strlen($a);
echo ("$a\n");
という風な記述をすると思うのですが、これをperlに置き換えたい場合はどの様にすれば宜しいのでしょうか?
0604nobodyさん
02/07/31 03:35ID:???通常であればシェルで
edquota ユーザー名 (Enter)
でエディタが起動して
Disk quotas for user okada (uid xxx):
Filesystem blocks soft hard inodes soft hard
/dev/hdax xxx xxxx xxxx xx x x
上記のテンプレートを編集する事になるのですが、
これを Perl のスクリプトで変更することはできないのでしょうか?
exp) perl ./edquota.pl ユーザー名 blocks値 soft値 hard値 inodes値 soft値 hard値・・
Linux Slackware8.0
Perl5.6 を使用しております。
それでは宜しくお願いいたします。
0607nobodyさん
02/07/31 07:53ID:y2pKIymG示して頂いた例通り(変数名は別のものですがw)試して、巧く機能させる事が出来ました。お蔭さまで助かりました。
何分、糞imodeに対して別途"Content-Length"値を与えなならんと聞いたものですから‥
0608nobodyさん
02/07/31 07:55ID:???0610nobodyさん
02/07/31 08:49ID:???CSSスレで聞け。
0611nobodyさん
02/07/31 09:13ID:phubboAlこれを見れない原因として、何が考えられますか?
0612nobodyさん
02/07/31 09:24ID:???1:自分はこう言う事がしたい。
2:それでこんな風にやってみたが・・・
3:それだとこんなエラーが出て上手く行かなかった。
1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。
0613nobodyさん
02/07/31 09:35ID:qpj2RbUE本体からの呼び方の
決まりが書いてあるページが見つかりません。
教えて下さい。
■ このスレッドは過去ログ倉庫に格納されています