くだすれPerl(超初心者用)2
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001nobodyさん
2008/03/03(月) 05:07:32ID:???もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
Perl使いが優しくコメントを返しますが、
お礼はPerlの布教と初心者の救済をお願いします。
0808nobodyさん
2008/11/16(日) 06:04:08ID:???それがたまたまUNIX系サーバに載ってるって事でCGIを作るのに丁度良かっただけ
この痛い奴はどんな幻想持ってたんだ?
Perl云々でなく自分が無能だって事を理解しようね
0809nobodyさん
2008/11/16(日) 10:21:26ID:???0811nobodyさん
2008/11/16(日) 15:43:33ID:???CGIがPerlで書かれてるから勉強したいだけなんです。
ちょっといじって改造とかしたいんです。
0812nobodyさん
2008/11/17(月) 09:13:31ID:???こうですか?
0815nobodyさん
2008/11/18(火) 09:18:08ID:???Googleだけでなんとかなりそうだけど、
そうじゃないならどうなんでしょうか?
0816nobodyさん
2008/11/18(火) 09:41:28ID:???ローカル環境で動作テストすれば試行錯誤しても誰にも迷惑かけないしね。
0817nobodyさん
2008/11/18(火) 22:42:46ID:???chomp($a);
$b=int($a);
$b%=0xFF;
printf("%0x",$b);
getcで受け取った1文字のアスキーコードを表示したいのですが
上のコードを実行しても"0"しか表示されません。
どうしたらいいでしょうか?
0818nobodyさん
2008/11/18(火) 22:49:27ID:???・getcの行で「a(リターンキー)」を押したら「61」と16進数で表示される
これがやりたいことです。
0819nobodyさん
2008/11/18(火) 23:25:03ID:???0821nobodyさん
2008/11/19(水) 08:25:12ID:Fi86N1yA掲示板が出ません、
clip.cgi?mode=check にアクセスしても404になりますし
ドメインのアドレスをクリックしても、アップロードしたファイルがそのまま出てくるだけで
1週間悩んでもわかりません><
アドバイス頂けませんか? サーバーはさくらのレンタルでライトプランです
0822nobodyさん
2008/11/19(水) 09:11:55ID:???/home/アカウント名/www/ にCGIをアップロードして実行権限与えるだけのようだが
一週間の悩んでたのならまず落ち着け
0823821
2008/11/19(水) 11:48:01ID:Fi86N1yA先ほど掲示板は出ました、
しかし、掲示板から画像投稿しても画像が出ません><
imgデェレクトリには、投稿した画像はあるのですが、画像がでません
$ImgUrlはサーバーの説明ページを見てやったので間違いないと思うのですが…
0824nobodyさん
2008/11/19(水) 12:14:18ID:???0825821
2008/11/19(水) 12:33:43ID:Fi86N1yAありがとうございます! おかげでできました!
0826821
2008/11/21(金) 11:44:39ID:+lsYQ29gkentwebさんの画像アップ掲示板(clipboard)にカウンターをつけたいのですが
調べても、解説しているサイトが無くて
どなたかヒントでいいので教えて頂けませんか?
0827nobodyさん
2008/11/21(金) 11:57:00ID:???0828nobodyさん
2008/11/22(土) 14:19:29ID:???OSはWin2k SP4です
どうすればインストール出来るのでしょうか?
0829nobodyさん
2008/11/22(土) 18:38:31ID:???つ VC2008(2005)Express + nmake + mysqlclient.lib(libmysql.dll)
つ http://theoryx5.uwinnipeg.ca/ppms/
お好きな方を
0831nobodyさん
2008/11/29(土) 12:59:08ID:060X3luIあ い う え お か き く け こ
と文字列があり、リロードする度に2回ずつ表示させるにはどう書いたら良いか教えてほしいです。
一回目 あ
二回目 あ
三回目 い
って感じです。宜しくお願いします。
0832nobodyさん
2008/11/29(土) 13:40:07ID:???0833nobodyさん
2008/11/29(土) 21:05:33ID:???my $num = 0;
for $num (0 .. 20) {
$num = $num/2;
print $words[ $num%@words ], "\n";
}
0834831
2008/11/30(日) 01:08:25ID:???ありがとうございました。
0835nobodyさん
2008/11/30(日) 18:06:10ID:???my @words = qw(あ い う え お か き く け こ);
{
my $call = 0;
sub _idx {
int($call++/2);
}
}
while (my $val = $words[_idx()]) {
print "$val\n";
}
0836nobodyさん
2008/12/09(火) 19:35:05ID:???ボタンを押して表示されるURLが「test.cgi?page=1?Word=○○」になるようにしたい
<form action="test.cgi?page=1">と書いても?以降は無視されちゃうんですが
何か方法ありますか?
0837nobodyさん
2008/12/09(火) 19:48:00ID:???0838836
2008/12/09(火) 19:53:00ID:???とやると、URLが「test.cgi?Word=○○」になってしまいます。
「?page=1」を入れるにはどうしたらいいでしょう
0839nobodyさん
2008/12/09(火) 21:57:27ID:???<input type="hidden" name="page" value="1">
<input type="text" name="Word">
0840836
2008/12/10(水) 07:22:57ID:???すみません それだと「test.cgi?page=1&Word=○○」になってしまいます
Wordの前を「?」にしたいので、hiddenではできないかなと思ってたんですが
できるのでしょうか
0841nobodyさん
2008/12/10(水) 08:06:09ID:???順番的な話だけなら記述する行を逆にすればいい話だけど
0842836
2008/12/10(水) 08:45:47ID:???アクセス数の内訳を把握するためにURLを表示させたいのですが、
同じ内容を表示するにはURL内のpageとWordの前に
それぞれ?がないとだめなようなので。
formの記述でなんとかなるかなと思ったんですが、無理ですか…
他の方法を考えます。ありがとうございました。
0843nobodyさん
2008/12/10(水) 11:15:13ID:???プログラムを頂いてActive perl5.6ではしっかり動作したのですが、
5.8.8環境下で一応動くものの、日本語が文字化けして意味不明になります。
ググッた所では日本語の処理方法が違う?見たいな事がチラホラ見えます。
日本語処理で5.6を5.8.8においてそのような違いが有るのでしょうか?
対処方法が有れば、ご教授お願いします;
パッチの置き場所が問題?w
動作環境
5.6 XP ルート設定有り マイコン→ユーザ1→プログラム置き場
5.8.8 XP 設定なし マイコン→Cドライブ→直置き
0844nobodyさん
2008/12/10(水) 11:24:04ID:???5.8対応するならUTF-8前提で書き直したほうがいいと思う。
0846nobodyさん
2008/12/10(水) 11:41:47ID:???>>844
やはり文字コードが変更されていたんですね;;
書き直し・・・強引に動かす方法無いですかね?(有れば)
無理が有りすぎならプログラム書いた人に相談してきます。
>>845
テンプレート?練習用テンプレで書いてみるって事でいいですか?
急いで探してみます><
0847nobodyさん
2008/12/10(水) 12:17:15ID:???0850nobodyさん
2008/12/14(日) 13:24:40ID:???一つのファイルで全部やるよりも、
書き込み.cgi
閲覧.cgi
管理人用.cgi
検索.cgi
などのように、処理の種類ごとに
ファイルを細かく分けた方が、体感軽いとかありますか?
0851nobodyさん
2008/12/14(日) 13:32:50ID:???0852nobodyさん
2008/12/14(日) 14:18:58ID:???ありがとうございました!
0853nobodyさん
2008/12/15(月) 17:24:02ID:???ループごとにカウントしてlastだと管理しにくいので良い方法を探しています
0854nobodyさん
2008/12/15(月) 19:30:03ID:V2NIPW0rfor(0..$num)とでもしとけば?
0857nobodyさん
2008/12/15(月) 22:03:34ID:???0858nobodyさん
2008/12/15(月) 22:05:31ID:???0859nobodyさん
2008/12/15(月) 22:08:55ID:???レスしても混乱するだけだろ。
0860nobodyさん
2008/12/16(火) 00:25:05ID:???0861nobodyさん
2008/12/16(火) 00:47:33ID:???0864853
2008/12/16(火) 12:06:04ID:???質問の仕方が悪くて申し訳ないです。
例えば配列の値を見るとき、
my $count=0;
for (@array) {
print $_;
$count++;
last if $count>1000;
}
等、終了条件を決めて抜ければいいんですが
ループの度にカウンターを設定してカウントって面倒ですよね?
意図としては>>861のように、何もせず、あるいはもう少し簡単にブレイクする方法があれば
教えて頂きたいというものでした。
PHPだとmax_execution_timeで実行時間を制限できます。
Perlだとそういったものは無いのでしょうか?
0865853
2008/12/16(火) 12:09:30ID:???×for (@array) {
○foreach (@array) {
0866nobodyさん
2008/12/16(火) 12:19:48ID:???854氏が既に書いてるが、
for my $i ( 0 .. 999 ){
print $array[$i] ;
}
0867853
2008/12/16(火) 12:35:45ID:???for my $i ( 0 .. $#array ){
print $array[$i] ;
}
こんな感じでしょうか。
あれれ?配列の場合、無限ループにはなり得ない??
0868nobodyさん
2008/12/16(火) 13:16:54ID:???0869nobodyさん
2008/12/16(火) 13:57:42ID:???$i=1;
foreach(@array){
print $_;
$array[$i+1]=$array[$i];
$i++;
}
こんな悪戯とかは。
0872nobodyさん
2008/12/17(水) 08:19:35ID:???俺は意外と無いんだけど…
0873nobodyさん
2008/12/17(水) 10:44:54ID:JyAZ5ywx0874nobodyさん
2008/12/17(水) 10:53:59ID:???取得できたらファイル保存してスリープ
を繰り返す
0875nobodyさん
2008/12/17(水) 11:28:15ID:JyAZ5ywxcronとかそういうのがあると聞いたんですが
0876nobodyさん
2008/12/17(水) 11:33:30ID:???書いた
cron使えるサーバならそれでいける
0877nobodyさん
2008/12/17(水) 12:12:50ID:JyAZ5ywx2つの場所にある cgi が、十分短い時間だけスリープして相手を呼び出すってどうでしょう?
0878nobodyさん
2008/12/18(木) 11:45:09ID:???2つのCGIで呼び合うというのは作ったことがあるができるよ。
システム占有率が目立たなければ問題ないと思う。
cronが使えればそれに越したことはないと思うが
0879JyAZ5ywx
2008/12/18(木) 11:54:13ID:pPcqWUbs0880nobodyさん
2008/12/19(金) 19:42:45ID:???ファイルの先頭に追加書き込みをする処理を行いたいのですが、
読み書きモードで開いて、ファイルを全て配列に読み込み、
unshiftで先端に追加してファイルに書き込みをしなおし、
するやり方と、
上書きモードで新しいファイルに追加を書き込み、
それから読み込みモードで元ファイルを開いて中身を新しいファイルに書き込み、
unlinkとrenameをするやり方では、
どちらの方が良いのでしょうか?
また、この二つ以外にオススメのやり方があれば教えて下さい。
0881880
2008/12/19(金) 20:00:28ID:???通常の掲示板の書き込み保存ファイルなどだけを扱うつもりです。
0882nobodyさん
2008/12/19(金) 20:13:08ID:???できれば先頭に追加書き込みする仕様を変えるとかは選択肢にないの?
0883nobodyさん
2008/12/19(金) 20:22:02ID:???読み込むときにreverseなどをした方が良いのでしょうか?
0884nobodyさん
2008/12/19(金) 20:23:05ID:???ブラウザでファイルの中身を表示するときのことです。
掲示板でいうと記事一覧表示などです。
0885nobodyさん
2008/12/19(金) 20:26:00ID:???0886nobodyさん
2008/12/19(金) 20:38:36ID:???読み込みは一番多いところでは1秒に30〜100回程あります。
ただ、少ない時間(朝〜昼など)は読み込みも1分に1度程度になる時期もあります。
静的なhtmlというと、書き込みのたびにhtmlファイルの形に書き出す感じでしょうか。
確かにそうしている掲示板スクリプトなどは閲覧が早いですよね、
そういったことはやったことがないので調べてみます、
難しそうに感じますが試してみます。ありがとうございます。
ログファイルへの書き込み自体は、末尾に追加書き込みをし、
閲覧時にreverseするやり方が良いのですか?
サーバーは専用サーバーを借りております。
ただ私に知識が足りないので、基本的な運用は管理者の方に任せている状態です。
必要なモジュールなどはお願いして入れてもらっている形です。
0887nobodyさん
2008/12/20(土) 00:27:59ID:???CPAN の File::ReadBackwards を使うという手もあります。
何故住人が口を揃えてファイル先頭への追記を忌避するかというと、
必然的にいずれかのステップでファイル全体のコピーを必要とするため、
空間的にも時間的にも効率が悪いからです。
また、読出し負荷を下げるために静的ファイルを利用する際には、
投稿ログファイルのタイムスタンプとキャッシュのタイムスタンプを比較して、
キャッシュのほうが新しければキャッシュをただ投げ返すといった方法もとれるでしょう。
がんばってください。
0888nobodyさん
2008/12/20(土) 00:56:27ID:???0889nobodyさん
2008/12/20(土) 22:09:13ID:???win環境です。
パスワードセットして解凍するです。
よろしくお願いします。
0891nobodyさん
2008/12/20(土) 22:53:25ID:???zip解凍ソフトの実行ファイルをオプション付きでPerlからたたく
これで解決
0892nobodyさん
2008/12/20(土) 22:54:40ID:???wwwwww
CPAN つかえよwww
0893nobodyさん
2008/12/21(日) 18:51:35ID:???./movies/loli.zip
~$
0894nobodyさん
2008/12/22(月) 12:53:17ID:???0895nobodyさん
2008/12/22(月) 20:16:30ID:Vaq4WjNPそこで読み込んだhtmlファイルに変数を埋め込んでcgiから出力したいんです
簡単なデータ構造なら埋め込む方法は何個か思いつくんですが、記事とか記事のタイトルとか、配列やハッシュの配列などをどう処理しようか悩んでます
一般的にはどういう方法を取るもんなんでしょうか
0896nobodyさん
2008/12/22(月) 20:26:01ID:???0898nobodyさん
2008/12/22(月) 20:57:44ID:???Tenjin - the fastest template engine in the world
http://www.kuwata-lab.com/tenjin/
0899nobodyさん
2008/12/22(月) 21:01:36ID:???extlib にゴミが大量に入ってて当初のコンセプトはどこにあるのかさっぱりだけどwww
0900nobodyさん
2008/12/22(月) 23:07:11ID:TJyyzWEdall skipped: Perl 5.8.1 or later required
Failed Test Stat Wstat Total Fail Failed List of Failed
-------------------------------------------------------------------------------
t/enc_module.t 2 512 3 2 66.67% 2-3
3 tests and 6 subtests skipped.
Failed 1/24 test scripts, 95.83% okay. 2/5850 subtests failed, 99.97% okay.
make: *** [test_dynamic] エラー 29
/usr/bin/make test -- NOT OK
Running make install
make test had returned bad status, won't install without force
Perlのバージョンを今の5.8.0から5.8.1以上に上げないといけないのでしょうか?
0901nobodyさん
2008/12/22(月) 23:09:31ID:???0902895
2008/12/23(火) 00:34:22ID:ZaYeCOkcありがとうございます
とりあえずのところ、一番わかりやすかったHTML::Templateを使ってみることにしました
できれば勉強のために自分で作ってみたかったんですが、ソースコード見て諦めましたw
0903nobodyさん
2008/12/24(水) 03:27:20ID:DJKrSH/Sなんとか関数と暗号でググると コードとか詳しく説明してあるがイマイチ
0904nobodyさん
2008/12/24(水) 23:13:25ID:???0906nobodyさん
2008/12/25(木) 00:45:10ID:eRkadvZc0907nobodyさん
2008/12/25(木) 10:37:40ID:???おれはCatalystとか使える環境でやってるから、レンサバのかたの事情は
よく分からんのだけど、speedy_cgiレベルでもキツい?
speedy_cgiオケなら、初めはCGI::Application(Titanium)でやって
負荷が増えてきたたらspeedy_cgi化するってのがよさそうだけど。
レス数が900を超えています。1000を超えると表示できなくなるよ。