トップページ⇒php
981コメント390KB

くだすれPerl(超初心者用)2

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2008/03/03(月) 05:07:32ID:???
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
Perl使いが優しくコメントを返しますが、
お礼はPerlの布教と初心者の救済をお願いします。
0755nobodyさん2008/10/18(土) 10:53:04ID:???
>>754
配布元ウェブサイトに行くとそのあたりのことを書いてありますが。
0756nobodyさん2008/10/18(土) 11:46:59ID:TpRddp7o
また質問です。
Apache2.2.6から2.2.10にアップグレードする場合、
古いApacheを消さず、そのままアップグレードってできますか?
環境はwindowsXPです。
0757nobodyさん2008/10/18(土) 11:48:06ID:TpRddp7o
誤爆しました。すいません。
0758nobodyさん2008/10/18(土) 18:51:00ID:???
Larry Wall に、Programming Perl の第4版をいつ書くのかを聞きたいのですが、どこで聞けますか?
0759nobodyさん2008/10/18(土) 21:19:53ID:???
使用しているモジュールのバージョンアップ後に
lwpでhttpsサイトのソースをgetで取ると一部が抜けてしまう
状態になったのですが、Crypt-SSLeayを削除したところ
問題なく取得できるようになりました。
最近のバージョンではCrypt-SSLeayは使わなくなったのでしょうか?
07607592008/10/18(土) 21:31:03ID:???
すんません、なんか勘違いしていたようです・・・

あれこれやってるうちにp5-Net-SSLeayの方も入れてました。
これも消したところ接続不能に…
一方ずつ試してみたところ、Crypt-SSLeayの方では>>759の状態になるのですが
Crypt-SSLeayを削除してNet-SSLeayを入れたところ正常になりました。
LWPではCrypt-SSLeayの方を使ってたと思うんですが、Net-SSLeayに変わったのかな・・

BASIC認証もおかしくなったしportupgradeでまとめてあげたのが悪かったのか…(´・ω・`)
0761nobodyさん2008/10/24(金) 04:49:19ID:kVbR7JUN
perlで入力された文を単語に分割し、単語ごとに改行し、a.txtファイルへ追加書き込みを行うプログラムを具体的にそのプログラムを書いて教えてください。
0762nobodyさん2008/10/24(金) 12:59:37ID:???
単語に分けるには形態素解析とか使うのが常套だと思うが
ここに書くには面倒だな
0763nobodyさん2008/10/24(金) 13:48:31ID:???
くだ質問失礼します。

あるPerlスクリプトでMIME::Toolsを利用しているのですが
MIME::Tools内でFile::Tempをインクルード?しようとしているときに
File::Temp Vresion 0.18 Required--This only Version 0.12と表示され
スクリプトが動作しません。

CPANではFile::TempのVer 0.12の配布は終わったらしくインストールできません。
そこでtar.gzを探してインストールしてみたのですがエラーは改善しません。
CPANでインストールしたものを-Dオプションで削除しても同様でした。

CPANでインストールしたものとtarボールからインストールしたモジュールは
同居できないのでしょうか?

もしそうだとするとこのエラーは解決しないのでしょうか。

動作OSはDebian Etchです。
0764nobodyさん2008/10/24(金) 14:02:11ID:???
>>763
> File::Temp Vresion 0.18 Required--This only Version 0.12

File::Temp Vresion 0.18 が必要--これはたったの Version 0.12

07657632008/10/24(金) 14:33:43ID:???
>>764
レスありがとうございます。
英語を誤読していましたか。お恥ずかしいです。

で、CPANでFile::Tempと念のためMIME::Toolsを最新にしてみました。
File::TempはVre 0.20、MIME::Toolsは5.427に上がりました。

ですが元のParlスクリプトを実行すると
全く同じエラーが表示されます。
バージョン番号を誤認しているようなのですが
そもそもParlやCPANはどこでバージョンを管理しているのでしょうか。
0766nobodyさん2008/10/24(金) 14:48:26ID:???
思い込みと決めつけ
0767nobodyさん2008/10/24(金) 14:57:09ID:???
>>765
コンソールから、
perl -MFile::Temp -e "pritn $File::Temp::VERSION" (Unix系ならシングルクオートで)
やってみ。
これで0.12が出たら、多分、システムにもともと入ってた0.12と新しく入れた0.18が共存してる。

OSとか分からんからはっきりとは言えないけど、そのシステムに合ったやり方で
モジュールのバージョンアップしないと(ActivePerlならppm、RHEL系Linuxならrpmなど)
違うファイルパスに二つのバージョンが入ってしまう、ってことも起こり得る。
07687632008/10/24(金) 15:22:04ID:???
>>767
レスありがとうございます。
教えていただいたコマンドを実行してみましたが何も表示されませんでした。
念のためsudoにてroot権限でも実行してみましたが同じでした。
(ちなみ動作環境はDebian Etchです)

とりあえず共存の可能性があるとのことご指摘があったので
Perlのモジュールが格納されてそうなディレクトリを
調べてみたいと思います。
0769nobodyさん2008/10/24(金) 16:55:38ID:???
>>768
大変失礼した。>>767の"pritn"は"print"のtypoだ。pritnてなんだよ(w)
あと、OSちゃんと書いてたの見落としてた。ごめん。

で、なにも表示されないってことだけど、それはおかしいと思う。
(モジュールが入ってなければなんらかのエラーが出るはず。bashからなら囲いの""を’’にしてみて)

Deb系のことは詳しく知らないからあくまでも参考だけど、RHEL系の場合/usr/lib/perl5 以下に、
5.8.8とかsite_perl、vendor_perlみたいなディレクトリがいくつかあって、例えばrpmから入れたらvendorに入るけど、
tarから手動でmakeとかするとsite_perlに入ったりする。(モジュールによって違う)
07707632008/10/24(金) 20:41:34ID:???
>>769
フォローありがとうございます。
SSHクライアントの表示がおかしかったようです。
実行結果をリダイレクトしてviで覗いたら
0.20と記録されていました。

で、途中報告です。
実は動かそうとしているスクリプトは
後出しで申し訳ないのですがほかのサーバで動作していた
Movable Type関係のスクリプトなのです。
で、Movable Type内にもPerlのライブラリがあるらしく
そちらとバッティングしている可能性が大きくなってきました。

今回Debianに移行評価テストをしているのですが
ディストリビュートのディレクトリ構成やパーミッションの違いが
影響しているのもあるようです。
引き続き調べてみて、報告したいと思います。
0771nobodyさん2008/10/24(金) 20:50:49ID:???
まず自分自身を評価しろよ
07727632008/10/24(金) 23:18:20ID:???
結果報告です。

途中経過に書いた通りなのですが
Movable Type 内にextlibというディレクトリがあり
その中にFile::Tempの0.12がインストールされていました。

動作させようとしていたスクリプトが
Movable Typeで提供しているライブラリを優先させて
インクルードさせていたために
CPANでインストールしても有効にならないということでした。

で、Movable Type内のFile::Tempをリネームして
スクリプトを実行したところバージョンチェックに引っかかりませんでした。

ただその後jcode.pmの実行中にたくさんのエラーを吐いて
処理が止まっていました。
これ以上深追いしても私の手で解決するには時間がかかると判断し
今回の評価作業は打ち切りました。

ただ今回初めてPerlでの作業を行って勉強になりました。
コメントしてくだった方に感謝します。
0773nobodyさん2008/11/11(火) 14:43:56ID:???
test.cgi?page=1 にアクセスすると
<html><body>1</body></html>
と表示され、test.cgi?page=2 だと
<html><body>2</body></html>
…というふうに数字が増えていき、これをpage=10までやる。

という場合どうしたらいいですか?
0774nobodyさん2008/11/11(火) 15:10:13ID:???
printf(<<HTML, ($ENV{QUERY_STRING}=~/(\d+)/)[0]+1);
Content-type: text/html

<html><body>%d</body></html>
HTML
07757732008/11/11(火) 16:08:15ID:???
>>774
ありがとうございます。エラーになってしまって表示されません…。
値の設定とかが必要なのでしょうか?
0776nobodyさん2008/11/11(火) 16:21:08ID:???
10まで、とか条件抜けてるけど、エラーにはならんぞ。
先頭の #!/path/・・・/perl とか、パーミッションとかは問題ないな?
07777732008/11/11(火) 16:49:28ID:???
print "Content-type: text/html\n\n<html><body>%d</body></html>"
で%dと表示されるので環境に問題はないと思うのですが…。

先頭の#!/path/・・・/perl の次の行から>>774を貼り付けてtest.cgiで保存し
ブラウザでアクセスしているのですが、何か根本的に間違えていますか?
0778nobodyさん2008/11/11(火) 16:52:57ID:???
そこまでやってて環境とエラー内容を書かないのはなんでだ
まあ普通は CGI.pm 使うとこからやった方がいいが。
07797732008/11/11(火) 17:15:43ID:???
すみません、動きました!
文末にスペースが入っちゃってました。
ありがとうございます!
0780nobodyさん2008/11/14(金) 01:53:06ID:???
既存のCGIを少し変えて、件数ごとのページ送りができるようにしたいと思っています。
送り方は何でもいいのですが、例えばこんな感じで↓

$hyouji=表示件数
$cnt = 0;
for (@logdat) {
$cnt++;
next if ($cnt < $pageno + 1);
next if ($cnt > $pageno + $hyouji);
print "$logdat[$cnt-1]<hr>";
}
print "<form action=\"$script\" method=\"post\">\n";
$next = $pageno + $hyouji;
$back = $pageno - $hyouji;
if ($next < $cnt) {
print "<input type=\"submit\" name=\"page=$next\" value=\"次の$hyouji件\">\n";
}

ただ、元のCGIに以下のような記述があり、どうすればこれを保持したまま上のボタンが
機能するようになるのかがわかりません。

my($cl)=$ENV{'CONTENT_LENGTH'};
read(STDIN, $a, $cl);
foreach (split(/&/, $a)){
($arg, $val)=split(/=/, $_);
$val =~ s/\+/ /g;
$val =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/ego;
}
undef $a;

どうかご教授ください…
0781nobodyさん2008/11/14(金) 02:08:39ID:???
http://www.google.com/search?q=%E3%81%94%E6%95%99%E6%8E%88
0782nobodyさん2008/11/14(金) 02:18:37ID:???
ご教示ください…
0783nobodyさん2008/11/14(金) 02:45:52ID:???
…はうざキモイ
0784nobodyさん2008/11/14(金) 02:53:52ID:???
ご教示ください!
0785nobodyさん2008/11/14(金) 22:30:27ID:SnXSZwdH
なぜ1になるんだ!

print ("RlNG" ne uc "ring");
0786nobodyさん2008/11/14(金) 22:43:17ID:???
RINGとRlNGは違う
0787nobodyさん2008/11/15(土) 08:06:22ID:???
Perlをゼロから勉強したいんですが、お勧めの書籍ってなんですか?
0788nobodyさん2008/11/15(土) 14:37:47ID:???
>>787
じっくりやりたいならまずCを勉強する。そうすれば
http://www.namazu.org/~tsuchiya/perl/info/perl-ja_toc.html
オンラインマニュアルで充分だ。
0789nobodyさん2008/11/15(土) 19:04:08ID:???
誰かが書き込んだので私も^^
>>787さん
実は私も超初心者で何からどうすればよいのかわかんなかったので
2chで聞いてみた
たまたま答えた人がこう言ったんですけど(その後、誰もフォローもしないので)
おもいっきり信じてしまいました
「Perlでなんでもできるよ。Perlは簡単なので初心者向きだよ」ってね
しかし、Perlにできることは限られていました
それに簡単ではありません
ちょっと込み入ったことをやろうとしたら
参考書20冊買いました。でもできませんでした。
何が言いたいのかというと
Perlで時間潰すくらいなら初めからCがいいです。もしくはC++ね
Perl使いの最高峰レベルで難しいことやるよりは
Cプログラマヘタレレベルのほうが簡単に色んなことができました
VC++がいいかも知れません
Cはプログラムの王様です
やりたいことが難しいことになるほど
いずれCにいかなきゃなあって思うはずだよ
それなら最初からCかC++の方が絶対いいよ
私はPerlスレでオモイッキリ小馬鹿にされまくって結局何もできないまま挫折しました
今はCの超〜〜〜初心者ですが既に私のやりたいことできました
悪いことはいわないのでCかC++(VC++なら無料でできます)がいいよ
Perlスレの解答者は自己満足で人をけなしてばかり
あなたをオモチャにするだけで、あなたの役には立ちません
マジでCかC++がいいとおもう
もし、どうしてもPerlに拘るのならここで質問しない方がいい
いじくられて小馬鹿にされるだけです
CからみたらPerl使いなんて何もできないヘタレですよ
そのくせ生意気にも人様を小馬鹿にするのが趣味なんです
とにかくC(もしくはC++またはVC++)です!
0790nobodyさん2008/11/15(土) 19:59:23ID:???
>20冊買いました
お前perl or C以前にセンス無いからやめちまえ。
参考書買って「読む」って事が分ってないだろ…
「実際の例題とか自分で打って実行してみる」
それが「読む」って事だよ。
0791nobodyさん2008/11/15(土) 20:01:25ID:???
20冊も読んでたらそれなりになってるだろ普通。
0792nobodyさん2008/11/15(土) 20:25:57ID:???
Perlとかこれからすたれる言語はやめたほうがいいよ。
RubyかPythonあたりにしなさい。
0793nobodyさん2008/11/15(土) 20:27:24ID:???
>>787さん見ましたか
ここの連中はこうやって煽るばかりです
そして私が質問するとできないのでみんな消えちゃうんですよw
20冊読んでってわかんないから挫折したんだよ
Cのほうが圧倒的にいいよ
Perlなんて何もできないくせに難しいだけ
やっと覚えてもちょっと計算するか文字列扱うくらいだろ
例えば半自動でいいからヤフーのIDを10分で200個作れるのか
そう3秒に1個ね
できてから言え!
ここで迷解答してればいいよ

>>787
とにかくPerlやPHPやjavaスクリプトとかはやらないほうがいい
JAVAも遅い
Cだよ
も少し込み入ったことやるならC++
VC++使えばPerlより簡単だ
貼り付ければほぼ完了だもん
Perlは口ばっかし
お前らやってみろよヤフID
私は簡単にVC++で作れたよ
あのままPerlやってても多分、今でも作れなかったと思う
そういうサンプル皆無なんだもん
そのくせ「なんでもできる」だからねw
はらいてー
LWPだっけあれでどこまでできるか試してみればいいだろ
何もできないよ
0794nobodyさん2008/11/15(土) 20:33:12ID:???
おい!
どうした迷解答者
また言い放題で消えちゃったか
そうなると思ってたよ
はよヤフID3秒で作れるソースくれくれ
ほらほら
0795nobodyさん2008/11/15(土) 20:34:55ID:???
Perl云々ってなんでこんない質問者をいじくりたおすかな
自分じゃ何もできないくせに
おら
はよヤフID製作マシーンだせよ
お前らホント口先だけだな
C++がいいよマジで。
0796nobodyさん2008/11/15(土) 20:41:53ID:???
Perlで粋がってる奴ってなんなんだ?
私は挫折したけど
ホント今、思い出しても
振り回されっぱなしで何も習得できなかったよなあ
おい20冊読んでわからん奴はむいてないとか言った奴
お前は早急にヤフーID製作ソフト作ってみ
私はC++で1日で作れたよ
お前は人様を小馬鹿にするんだから
私より早く作れるのを頼むよwww
口先くん
まあ、未だにPerlで作れないけど
別にいいよ
私は前から言ってたけどPerl覚えるためにPerlやるんじゃないって
簡単に挫折しないで目標を達成
これを以前言ったら「それPerl」って言われたけど
Perlじゃなにもできないよ
Perl解答者はヤフーId1分間に20個以上は作れるのか?
私はPerl全くできないのと同じレベルだけど
私は作ったよC++でね
簡単さ
0797nobodyさん2008/11/15(土) 20:44:46ID:???
人をけなすより
作ってから言え!
PerlじゃC++の足元にも及びません
世界中が認めますよ
それなのにPerlできない奴を見つけて遠吠え
情けないやつらだ
0798nobodyさん2008/11/15(土) 20:49:46ID:???
>>797
それはまさに今キミがやってることそのものだ
0799nobodyさん2008/11/15(土) 20:53:32ID:???
ここはCGI作ったら一人前だと勘違いしてる奴ばかり
サーバサイドって作れるように言語がそういう仕様なんだから作れて当たり前
私がクライアント操作を知りたいって言えばみんな消える
サーバサーバサーバ
どの解説書もサーバサーバサーバ
うんざり!
そんなことより本当に必要な解説書はPerl本にはなかったな
私の言う本当のクライアント操作のサンプルはPerlではない
0800nobodyさん2008/11/15(土) 20:57:10ID:???
サーバサーバわっしょいわっしょい
そういう時代じゃないと思う
Perlの解説本を買えば
みーーーーーんな
お決まりのCGI
サーバサイドって言う割には遅すぎて細かいことは
「サーバサーバ」の掛け声でごまかしちゃう
さーば!さーば!さーば!
もうちょっとクライアント側に詳しい解説本はないのか探しまくったけど
ない
当たり前だ
Perl自体が、私の言うクライアント操作できないじゃん!
さーば!さーば!さーば!あほか。
0801nobodyさん2008/11/15(土) 20:59:31ID:???
自慢のサーバサイドもCの前では非力すぎて話にならない
もっとゴロゴリ力業の必要な私が言うクライアント操作なんて夢物語
サーバ!サーバ!って言ってるあいだはわかんあいだろね
本当に難しいのはクライアント操作だったんだ
0802nobodyさん2008/11/15(土) 21:01:56ID:???
Perl解説本100冊買えば100冊ともサーバのことばっかし
その割には
サーバとしては小回りきかない
中途半端
ほんと時間の無駄だったわ
こんなのでクライアント操作を模索してた自分が無知すぎて
perlの実態わかったとき自分をワロタ
0803nobodyさん2008/11/15(土) 21:03:08ID:???
さーば!さーば!さーば!
あほか
解説本どおりにすりゃあほでもできる
そんなことよりクライアント操作だ
Perlじゃ無理!!!!
0804nobodyさん2008/11/15(土) 21:06:40ID:???
さーば!さーば!さーば!
なんでもさーば!
絶対さーば!
さーばさいどは凄いんだぞ〜〜

さーば信者はカス
本当に難しいのはクライアント操作
それをここで聞いてた私も速く気づけばよかったとオモイッキリ後悔してるよ
こいつらクライアント操作はできないくせに
サーバのことがわかったら一人前に
人様を小馬鹿にしやがって。
さーば!さーば!さーば!さーば!・・・死ぬまでやっtればいいよ
0805nobodyさん2008/11/15(土) 21:08:07ID:???
だいたいPerlがサーバサイドって思っているのは
perl使いだけですよ
細かなことができないのに
なんでサーバサイドなんだよ
CGI作れるってだけだろ
ぽかーーーーん
0806nobodyさん2008/11/16(日) 01:41:39ID:???
ちょっと込み入ったことをやろうとしたら
参考書20冊買いました。でもできませんでした。
 ↓
Perl使いの最高峰レベルで難しいことやるよりは
Cプログラマヘタレレベルのほうが簡単に色んなことができました


ちょっと込み入ったことはできなかったが最高峰には到達したようだ。
0807nobodyさん2008/11/16(日) 05:58:56ID:???
なんか痛い無能がわいてるな
0808nobodyさん2008/11/16(日) 06:04:08ID:???
Perlなんて所詮はテキスト処理をちょこっとするだけのスクリプト言語
それがたまたまUNIX系サーバに載ってるって事でCGIを作るのに丁度良かっただけ

この痛い奴はどんな幻想持ってたんだ?
Perl云々でなく自分が無能だって事を理解しようね
0809nobodyさん2008/11/16(日) 10:21:26ID:???
今時、Perlを始めるなんて信じられない
0810nobodyさん2008/11/16(日) 15:07:50ID:???
>>809
おれは主食をPerlとする者だが、その意見には賛成する。
0811nobodyさん2008/11/16(日) 15:43:33ID:???
787です
CGIがPerlで書かれてるから勉強したいだけなんです。
ちょっといじって改造とかしたいんです。
0812nobodyさん2008/11/17(月) 09:13:31ID:???
ダメだ! こっちへ来てはダメだ!! おれたちはもうダメだがおまえだけでも逃げろ!!

こうですか?
0813nobodyさん2008/11/17(月) 10:09:20ID:???
>>811
ネットで解説してるサイトで十分じゃね?
08147872008/11/17(月) 12:15:30ID:???
>>813
お勧めのサイトありますか?
0815nobodyさん2008/11/18(火) 09:18:08ID:???
プログラミングの基礎がわかってるなら
Googleだけでなんとかなりそうだけど、
そうじゃないならどうなんでしょうか?
0816nobodyさん2008/11/18(火) 09:41:28ID:???
ちょっといじって改造ならその都度検索掛けながら出来ると思うよ。
ローカル環境で動作テストすれば試行錯誤しても誰にも迷惑かけないしね。
0817nobodyさん2008/11/18(火) 22:42:46ID:???
$a=getc;
chomp($a);
$b=int($a);
$b%=0xFF;
printf("%0x",$b);

getcで受け取った1文字のアスキーコードを表示したいのですが
上のコードを実行しても"0"しか表示されません。
どうしたらいいでしょうか?
0818nobodyさん2008/11/18(火) 22:49:27ID:???
・getcのファイルハンドルは<STDIN>
・getcの行で「a(リターンキー)」を押したら「61」と16進数で表示される

これがやりたいことです。
0819nobodyさん2008/11/18(火) 23:25:03ID:???
unpack('H2', getc);
0820nobodyさん2008/11/18(火) 23:47:43ID:???
>>819
ありがとうございます
0821nobodyさん2008/11/19(水) 08:25:12ID:Fi86N1yA
kentwebさんの画像アップ掲示板をDLしてアップロードしたのですが
掲示板が出ません、
clip.cgi?mode=check にアクセスしても404になりますし
ドメインのアドレスをクリックしても、アップロードしたファイルがそのまま出てくるだけで
1週間悩んでもわかりません><

アドバイス頂けませんか? サーバーはさくらのレンタルでライトプランです

0822nobodyさん2008/11/19(水) 09:11:55ID:???
FTPができてるなら
/home/アカウント名/www/ にCGIをアップロードして実行権限与えるだけのようだが
一週間の悩んでたのならまず落ち着け
08238212008/11/19(水) 11:48:01ID:Fi86N1yA
>>822 レスありがとうございます、

先ほど掲示板は出ました、
しかし、掲示板から画像投稿しても画像が出ません><
imgデェレクトリには、投稿した画像はあるのですが、画像がでません
$ImgUrlはサーバーの説明ページを見てやったので間違いないと思うのですが…
0824nobodyさん2008/11/19(水) 12:14:18ID:???
そのimgディレクトリを直接URLで指定したら出る?
08258212008/11/19(水) 12:33:43ID:Fi86N1yA
>>824 ああ出ました!
ありがとうございます! おかげでできました!
08268212008/11/21(金) 11:44:39ID:+lsYQ29g
また質問させて頂きたいのですが、

kentwebさんの画像アップ掲示板(clipboard)にカウンターをつけたいのですが
調べても、解説しているサイトが無くて
どなたかヒントでいいので教えて頂けませんか?
0827nobodyさん2008/11/21(金) 11:57:00ID:???
改造スレいけって
0828nobodyさん2008/11/22(土) 14:19:29ID:???
ActivePerl5.8.8のppm(GUI)からDBD::mysqlをインストールしようと思ったのですが見つかりません
OSはWin2k SP4です
どうすればインストール出来るのでしょうか?
0829nobodyさん2008/11/22(土) 18:38:31ID:???
>>828
つ VC2008(2005)Express + nmake + mysqlclient.lib(libmysql.dll)
つ http://theoryx5.uwinnipeg.ca/ppms/

お好きな方を
0830nobodyさん2008/11/22(土) 18:47:52ID:???
>>829
ありがとうございます。試してみます
0831nobodyさん2008/11/29(土) 12:59:08ID:060X3luI
初心者です

あ い う え お か き く け こ

と文字列があり、リロードする度に2回ずつ表示させるにはどう書いたら良いか教えてほしいです。

一回目 あ
二回目 あ
三回目 い

って感じです。宜しくお願いします。
0832nobodyさん2008/11/29(土) 13:40:07ID:???
ファイルに記録しとけば?
0833nobodyさん2008/11/29(土) 21:05:33ID:???
my @words = qw(あ い う え お か き く け こ);
my $num = 0;
for $num (0 .. 20) {
$num = $num/2;
print $words[ $num%@words ], "\n";
}
08348312008/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:???
<input type="text" name="Word">の「Word」の値をformからgetで渡す
ボタンを押して表示されるURLが「test.cgi?page=1?Word=○○」になるようにしたい

<form action="test.cgi?page=1">と書いても?以降は無視されちゃうんですが
何か方法ありますか?
0837nobodyさん2008/12/09(火) 19:48:00ID:???
<form method="get" ......
08388362008/12/09(火) 19:53:00ID:???
<form method="get" action="test.cgi?page=1">
とやると、URLが「test.cgi?Word=○○」になってしまいます。
「?page=1」を入れるにはどうしたらいいでしょう
0839nobodyさん2008/12/09(火) 21:57:27ID:???
<form action="test.cgi">
<input type="hidden" name="page" value="1">
<input type="text" name="Word">
08408362008/12/10(水) 07:22:57ID:???
>>839
すみません それだと「test.cgi?page=1&Word=○○」になってしまいます
Wordの前を「?」にしたいので、hiddenではできないかなと思ってたんですが
できるのでしょうか
0841nobodyさん2008/12/10(水) 08:06:09ID:???
?を2つて事?それは無理でない?てかなんでそうする必要あるんだろ?
順番的な話だけなら記述する行を逆にすればいい話だけど
08428362008/12/10(水) 08:45:47ID:???
既存のCGIの改造なのですが、元のものは>>839の内容をpostで渡しています。
アクセス数の内訳を把握するために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前提で書き直したほうがいいと思う。
0845nobodyさん2008/12/10(水) 11:26:49ID:???
>>843
いい機会だし、テンプレートでも勉強してみたら?
0846nobodyさん2008/12/10(水) 11:41:47ID:???
返信有難うございます
>>844
やはり文字コードが変更されていたんですね;;
書き直し・・・強引に動かす方法無いですかね?(有れば)
無理が有りすぎならプログラム書いた人に相談してきます。
>>845
テンプレート?練習用テンプレで書いてみるって事でいいですか?
急いで探してみます><
0847nobodyさん2008/12/10(水) 12:17:15ID:???
まずはそのプログラム見せないとなんとも答えようがない
0848nobodyさん2008/12/10(水) 20:43:28ID:???
>>842
で、その既存のスクリプトって何なの?
0849nobodyさん2008/12/11(木) 01:27:32ID:???
>>842
明らかにどこかおかしい。
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:V2NIPW0r
あらかじめ何回ループするか決めておいて
for(0..$num)とでもしとけば?
0855nobodyさん2008/12/15(月) 21:15:31ID:???
>>853
なにをしようとしてるのか晒せば良い解が得られるかも
■ このスレッドは過去ログ倉庫に格納されています