くだすれPerl(超初心者用)2
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/03/03(月) 05:07:32ID:???もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
Perl使いが優しくコメントを返しますが、
お礼はPerlの布教と初心者の救済をお願いします。
0756nobodyさん
2008/10/18(土) 11:46:59ID:TpRddp7oApache2.2.6から2.2.10にアップグレードする場合、
古いApacheを消さず、そのままアップグレードってできますか?
環境はwindowsXPです。
0757nobodyさん
2008/10/18(土) 11:48:06ID:TpRddp7o0758nobodyさん
2008/10/18(土) 18:51:00ID:???0759nobodyさん
2008/10/18(土) 21:19:53ID:???lwpでhttpsサイトのソースをgetで取ると一部が抜けてしまう
状態になったのですが、Crypt-SSLeayを削除したところ
問題なく取得できるようになりました。
最近のバージョンではCrypt-SSLeayは使わなくなったのでしょうか?
0760759
2008/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:kVbR7JUN0762nobodyさん
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:???> File::Temp Vresion 0.18 Required--This only Version 0.12
File::Temp Vresion 0.18 が必要--これはたったの Version 0.12
0765763
2008/10/24(金) 14:33:43ID:???レスありがとうございます。
英語を誤読していましたか。お恥ずかしいです。
で、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:???コンソールから、
perl -MFile::Temp -e "pritn $File::Temp::VERSION" (Unix系ならシングルクオートで)
やってみ。
これで0.12が出たら、多分、システムにもともと入ってた0.12と新しく入れた0.18が共存してる。
OSとか分からんからはっきりとは言えないけど、そのシステムに合ったやり方で
モジュールのバージョンアップしないと(ActivePerlならppm、RHEL系Linuxならrpmなど)
違うファイルパスに二つのバージョンが入ってしまう、ってことも起こり得る。
0768763
2008/10/24(金) 15:22:04ID:???レスありがとうございます。
教えていただいたコマンドを実行してみましたが何も表示されませんでした。
念のためsudoにてroot権限でも実行してみましたが同じでした。
(ちなみ動作環境はDebian Etchです)
とりあえず共存の可能性があるとのことご指摘があったので
Perlのモジュールが格納されてそうなディレクトリを
調べてみたいと思います。
0769nobodyさん
2008/10/24(金) 16:55:38ID:???大変失礼した。>>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に入ったりする。(モジュールによって違う)
0770763
2008/10/24(金) 20:41:34ID:???フォローありがとうございます。
SSHクライアントの表示がおかしかったようです。
実行結果をリダイレクトしてviで覗いたら
0.20と記録されていました。
で、途中報告です。
実は動かそうとしているスクリプトは
後出しで申し訳ないのですがほかのサーバで動作していた
Movable Type関係のスクリプトなのです。
で、Movable Type内にもPerlのライブラリがあるらしく
そちらとバッティングしている可能性が大きくなってきました。
今回Debianに移行評価テストをしているのですが
ディストリビュートのディレクトリ構成やパーミッションの違いが
影響しているのもあるようです。
引き続き調べてみて、報告したいと思います。
0771nobodyさん
2008/10/24(金) 20:50:49ID:???0772763
2008/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:???<html><body>1</body></html>
と表示され、test.cgi?page=2 だと
<html><body>2</body></html>
…というふうに数字が増えていき、これをpage=10までやる。
という場合どうしたらいいですか?
0774nobodyさん
2008/11/11(火) 15:10:13ID:???Content-type: text/html
<html><body>%d</body></html>
HTML
0776nobodyさん
2008/11/11(火) 16:21:08ID:???先頭の #!/path/・・・/perl とか、パーミッションとかは問題ないな?
0777773
2008/11/11(火) 16:49:28ID:???で%dと表示されるので環境に問題はないと思うのですが…。
先頭の#!/path/・・・/perl の次の行から>>774を貼り付けてtest.cgiで保存し
ブラウザでアクセスしているのですが、何か根本的に間違えていますか?
0778nobodyさん
2008/11/11(火) 16:52:57ID:???まあ普通は CGI.pm 使うとこからやった方がいいが。
0779773
2008/11/11(火) 17:15:43ID:???文末にスペースが入っちゃってました。
ありがとうございます!
0780nobodyさん
2008/11/14(金) 01:53:06ID:???送り方は何でもいいのですが、例えばこんな感じで↓
$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:???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:SnXSZwdHprint ("RlNG" ne uc "ring");
0786nobodyさん
2008/11/14(金) 22:43:17ID:???0787nobodyさん
2008/11/15(土) 08:06:22ID:???0788nobodyさん
2008/11/15(土) 14:37:47ID:???じっくりやりたいならまず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:???お前perl or C以前にセンス無いからやめちまえ。
参考書買って「読む」って事が分ってないだろ…
「実際の例題とか自分で打って実行してみる」
それが「読む」って事だよ。
0791nobodyさん
2008/11/15(土) 20:01:25ID:???0792nobodyさん
2008/11/15(土) 20:25:57ID:???RubyかPythonあたりにしなさい。
0793nobodyさん
2008/11/15(土) 20:27:24ID:???ここの連中はこうやって煽るばかりです
そして私が質問するとできないのでみんな消えちゃうんですよ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:???自分じゃ何もできないくせに
おら
はよヤフID製作マシーンだせよ
お前らホント口先だけだな
C++がいいよマジで。
0796nobodyさん
2008/11/15(土) 20:41:53ID:???私は挫折したけど
ホント今、思い出しても
振り回されっぱなしで何も習得できなかったよなあ
おい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できない奴を見つけて遠吠え
情けないやつらだ
0799nobodyさん
2008/11/15(土) 20:53:32ID:???サーバサイドって作れるように言語がそういう仕様なんだから作れて当たり前
私がクライアント操作を知りたいって言えばみんな消える
サーバサーバサーバ
どの解説書もサーバサーバサーバ
うんざり!
そんなことより本当に必要な解説書はPerl本にはなかったな
私の言う本当のクライアント操作のサンプルはPerlではない
0800nobodyさん
2008/11/15(土) 20:57:10ID:???そういう時代じゃないと思う
Perlの解説本を買えば
みーーーーーんな
お決まりのCGI
サーバサイドって言う割には遅すぎて細かいことは
「サーバサーバ」の掛け声でごまかしちゃう
さーば!さーば!さーば!
もうちょっとクライアント側に詳しい解説本はないのか探しまくったけど
ない
当たり前だ
Perl自体が、私の言うクライアント操作できないじゃん!
さーば!さーば!さーば!あほか。
0801nobodyさん
2008/11/15(土) 20:59:31ID:???もっとゴロゴリ力業の必要な私が言うクライアント操作なんて夢物語
サーバ!サーバ!って言ってるあいだはわかんあいだろね
本当に難しいのはクライアント操作だったんだ
0802nobodyさん
2008/11/15(土) 21:01:56ID:???その割には
サーバとしては小回りきかない
中途半端
ほんと時間の無駄だったわ
こんなのでクライアント操作を模索してた自分が無知すぎて
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使いだけですよ
細かなことができないのに
なんでサーバサイドなんだよ
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:???それがたまたま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)とでもしとけば?
■ このスレッドは過去ログ倉庫に格納されています