5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

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

Perlコーディング初心者質問スレ Part 62

540 :nobodyさん:2011/05/31(火) 18:05:05.53 ID:???
perlでcgiをコーディングし始めたものです。
xhtmlにて一旦ページをつくりそれを元に動的なページを作るために試行錯誤しています。
しかし問題が発生して困っております。
それは、表示の問題で、IE9では正常に表示されてるものがFireFoxでは表示が崩れるというものです。
ただ、一度xhtmlのページを作った段階では表示の差異はなくしてるのですが、これをperlに取り込む実行させると
同じ値を渡したページがFireFoxでは正常に表示されたり、崩れたりします。
ソースを調べてもxhtmlで作ったページとcgiで生成したページに違いはなく、cgiのほうだけ崩れたりそうじゃなかったりと原因が特定できません・・・
何が原因と考えられるでしょうか?

541 :540:2011/05/31(火) 18:21:43.15 ID:???
追記です。
ちょこちょこ検証していて、おそらく
print "Content-type: text/html\n\n";
の出力するタイミングでxhtmlのスタイルシートの読み込みが遅れると出力出来ないんじゃないかと疑っております。
ただ、現状でテストしていかないと原因が切り分けられそうにないので、
有用な情報があればいただければ幸いです。
原因が特定でき次第報告させていただきます。

542 :nobodyさん:2011/05/31(火) 18:36:17.20 ID:???
>>540-541
>>1
自分の作ったCGIスクリプトをデバッグするスレ
http://hibari.2ch.net/test/read.cgi/php/1011174442/
△▲ WebProg 初心者の質問 Part23 ▼▽
http://hibari.2ch.net/test/read.cgi/php/1294318320/

543 :540:2011/05/31(火) 23:16:45.83 ID:???
>>542
お返事ありがとうございます。
識者の方に検証いただくのは願ったり叶ったりなんですがperlのコード自体が1000行以上あり
cssとイメージが連動してるんですが、大丈夫なものでしょうか?また、どうやって検証していただくかたちがいいでしょうか?

544 :nobodyさん:2011/06/01(水) 00:05:43.06 ID:???
perl で出力してるページと、HTML を表示してる URL をプリーズ
あと内部のばれたら不味いような部分を消してソースもくれ。
見なきゃ分からん


545 :nobodyさん:2011/06/01(水) 01:11:28.43 ID:???
cgiからのヘッダーがごく微妙におかしい場合、無理くり読み込むブラウザや、表示を多少崩しても実行するブラウザや、
ちょっとでもおかしいと即座に実行を停止するブラウザとかあります。
ちなみに必要な改行数とかが、私の中では間違いやすく気付きにくいポイントです。改行コードの違いとか。
あとは文字コードの指定とか。

元HTMLとCGIからの出力に「本当に差異がない」場合は、ヘッダーのミスしか差異が起きる発生箇所がないかと思います。

あと、本当に差異がないのかどうか、目視ではなく、プログラムで検査したほうがいいです。
自分で作るか、適当にどっかからファイル比較ソフトをダウンロードしてくるか。

546 :540:2011/06/01(水) 02:05:39.47 ID:???
>>544
全く同じではないですが構造は同じだと思います
cgiのほうはDBからデータを取ってきて表示しています
ローカル環境でしたので、公開は即席で行なっております、また、固定IPではないのでIPが変更された場合ごめんなさい
かなりの不備はお赦しください
http://219.103.217.162/contents/category/c01b.html
http://219.103.217.162/contents/category/test001.cgi
>>545
文字コードutf8で統一されてるとはおもいますが、Encodeモジュールにてutf8デコード→加工→utf8エンコード出力しております。
ただ、記述に関して若干の差異があるので、それもひとつの原因となりうるのですね
もう少し詰めて、原因を探っていきたいと思います。

547 :nobodyさん:2011/06/01(水) 06:49:35.02 ID:???
>>541
> print "Content-type: text/html\n\n";
> の出力するタイミングで

出力するタイミングって…
真っ先に出力されてるもんじゃないの?
もしかして $|=1; が入ってないからとか?

548 :nobodyさん:2011/06/01(水) 07:05:17.61 ID:???
>>538
> 特にキーワードを与えてくれて助かりました。
「構造化 データ 交換 フォーマット」あたりでググればJSONやXMLくらいすぐ出てくるけどね。
でも既存のフォーマットを採用しても「なんでこれを採用したの?」と説明を求められたりして。

549 :nobodyさん:2011/06/01(水) 09:36:22.64 ID:???
CGI の挙動おかしくない?
レスポンスが HTTP/0.9 とか返ってくるんだけど・・・

設定の労力は AnHTTPd も Apache もさほど変わらないから、
Apache で HTTPD を立て直したほうがいいと思う

550 :nobodyさん:2011/06/01(水) 14:32:10.61 ID:???
http://hibari.2ch.net/test/read.cgi/php/1295170172/540n-
二度手間とか「それは聞きました」になるから同時進行させないでほしいもんだ

551 :540:2011/06/02(木) 00:36:34.95 ID:???
>>549
apacheを導入しました(cgiが動かずだいぶ苦戦しましたが・・・)
ひとつずつ切り分けていったところどうにかローカル環境では動きました
その副産物的にファイアーフォックスでほぼ、正常動作してくれました(ただ、数十回中なんどか表示が崩れる場合がありましたが・・・)
この程度なら耐えうるかなとおもいます
http://219.103.217.162/contents/category/c01b.html
http://219.103.217.162/test.cgi
外部に公開するのは初なので自宅サーバー確認ページなどで確認してみましたが、表示されますでしょうか・・・
>>547
$|はバッファ関係の特殊変数でしょうか?
$|=1; を代入してみても、数十回に数回起こる崩れは治りませんでした・・・
なんなんでしょう・・・
>>550
結果的にマルチっぽくなってしまったのは申し訳ありませんでした・・・
こちらをメインとさせていただきます

552 :nobodyさん:2011/06/02(木) 00:47:03.58 ID:???
got 403 Forbidden

553 :540:2011/06/02(木) 00:47:55.45 ID:???
cgiのほうは値を渡さないとエラーが出てしまうので
http://219.103.217.162/test.cgi?cate_data=a&row_data=1&num_data=1&method_data=1&page_data=1
これでどうでしょうか

554 :nobodyさん:2011/06/02(木) 06:20:49.70 ID:???
> http://219.103.217.162/contents/category/test001.cgi
> #!usr/bin/perl
↑ #!/usr/bin/perl じゃないの?

まずは use strict; と use warnings; をつけて、
エラーを吐かなくなるまで修正してみることをおすすめする。
Firefoxのレンダリングエラーとは直接関係ないかもしれないけど
後々のためにはやっておいた方がいいと思うので。

まあFirefoxは4になって以降挙動が微妙に怪しいからな…

555 :nobodyさん:2011/06/02(木) 08:10:52.87 ID:???
見た感じ、プログラム自体は経験者なんですね。
で、

if ($int_nm_nm == "1") {

は文字列として比較したいのか、数字として比較させたいのかはっきりと。

数字 → ==、!=
文字列 → eq、ne




しかし SQL 文はさっぱりわかんねぇや(理解するつもりもそんなに無いけど・・・)

556 :nobodyさん:2011/06/02(木) 10:13:18.93 ID:???
昨日の朝(AnWebのとき)
/contents/category/c01b.html → 200 Document Follows。やさいたべたい。
/contents/category/test001.cgi → >>549の言うように HTTP/0.9 で返って来てた。

今朝(Apache)
/contents/category/c01b.html → 200 OK。やさいたべたい。
/test.cgi → 404 Not Found
/contents/category/test001.cgi → 200 OK。でも text/plain でコードがでてくる。

403食らうって言われてごにょごにょしてるうちに AddHandler cgi-script .cgi 辺り殺したのかな?

XHTML の Content-Type は何にしとくのが無難かで地雷踏んでたわけでもなさそうだし
web鯖がおかしな動きしてただけかもしれない。
shebang の話はCGIが動く設定にすれば #!/usr/bin/perl にしてもコケるかも。windows だし。

557 :nobodyさん:2011/06/02(木) 10:20:27.35 ID:???
うーん今時グローバル変数を使ってるのは見る気がしないぞ…
それと、if文がでかすぎ。htmlをすべてhereドキュメントでコードの中に書くのはできればやめた方がよい。
今回のようにデバッグしにくくなるから。スカラー変数の多用もよくない。スカラーは限られたブロック内の
一時変数として使う程度にしておく。それ以外はハッシュを効率よく使うとよい。まあ好き好きだけれど。
$html = <<"HTML" のようなのだと、変数は展開してしまうから、意図しない置き換えが起きているとか。
単純に意図しているのとは違う書き出しをしているとか。
本来表示されるべきhtmlとのdiffを取るとか、firefoxならHTML validatorでおかしなところを拾うとか、
部分ごとにhtmlを作っているものをところどころにチェックポイントを入れて、少しずつチェックしていくとか
すれば、「崩れる」原因は当たりがつけられそうだけれど。

558 :nobodyさん:2011/06/02(木) 16:10:04.79 ID:???
いちおう〜エスパーしてみる

ScriptAlias → コメントアウト
DocumentRoot の内の Options に ExecCGI をプラス
AddHandler cgi-script .cgi を有効に。


559 :540:2011/06/02(木) 23:24:27.30 ID:???
数々の方のお知恵、ダメだしをいただきありがとうございますm(__)m
うれしいです
>>554
あとあと use strict は通る道と思いつつ、あとまわしにしてしまいましたがエラーの切り分けには大切だと思います
修正してみたのですがどうでしょうか
>>555
全くのトーシローです
よくみると、ラクダ本からほとんど足を出してないほどだとおもいます
数字と文字によって変えたほうがいいのですね、勉強になります

560 :621:2011/06/02(木) 23:26:54.63 ID:???
>>556
はい、AddHandlerあたりをいじりました
windows環境でしたので#!/usr/bin/perl は#!C:/perl/bin/perlに変更しました。
コードの不具合で起きたのではないならそれでそれで骨が折れます・・・
>>557
アドバイスありがとうございます。
そうですね・・・ifの中にヒアドキュメントででかいhtmlは見栄えなども悪いと思います・・・ごりごり書いてたらこうなってました・・・
あとあと別ファイルとして分けるつもりではいますがいつになるかわかりません^^;
ハッシュは理解はしてるのですが実践的な使いようが良く分かっておりません・・・
IE9、Crhome、safari、FireFoxとテストしていますがいかんせんFireFoxだけこういう挙動になってしましました・・・

561 :540:2011/06/02(木) 23:28:32.26 ID:???
名前欄ミスってしまいました・・・
>>558
ScriptAliasを無効にした場合、ルート外のディレクトリのcgi-binのcgiも動くのでしょうか?

562 :nobodyさん:2011/06/03(金) 01:35:12.29 ID:???
ExecCGI を書けばね

563 :nobodyさん:2011/06/03(金) 08:28:00.97 ID:???
もし自分がデバッグするとしたら…
・元のXHTMLとCGIが出力したXHTMLの構造に不一致がないかチェック。
 (これはもうやってるんだっけ?でもその後CGIいじったんだよね)
・上記を、IE9とFirefox(4?)の両者でそれぞれソース保存して違いがないかチェック。
・HTTP ServerやSQLのログにヒントがないか見てみる。
・ローカルプロキシ等でHTTPパケットをモニタして、IE9とFirefoxとで
 (また、Firefoxで表示の崩れる症状が出た時と出なかった時とで)
 パケットのやりとりに違いがないか見てみる。
あたりかな。

564 :540:2011/06/06(月) 00:45:44.08 ID:???
ちょっと忙しくレスが遅れて申し訳ありません・・・
>>562
もうすこし理解を深めたいですね・・・
設定ファイルは英語で丁寧に書かれていて英語をネイティブに読めたらどんなに楽か考えつつ翻訳してました・・・
やっぱり英語圏の方がソフトウェアに強いと言われる所為は英語で書かれている書籍やそもそもプログラミング言語自体が英語ベースだからでしょうか・・・
>>563
元のHTMLとCGIで生成されたHTMLを付きあわせてはやってみました
なるほど・・・別のブラウザ同士のソースを見てみるんですね
HTTPのパケットはどのようにしてモニターするのかわからない状况なのでまだまだ修業が必要ですね
ピンが通ったかどうか調べるだけでも骨が折れるレベルなので・・・



565 :nobodyさん:2011/06/08(水) 12:48:01.18 ID:???
スパゲッティなperl cgiにアクセスログなどを保存するコードを簡単に追加できる方法を緊急で探しています

もうじき成立する法律で、自前サイトもってる人がログ保存してないと3年の懲役らしいのです
http://tanakaryusaku.jp/2011/06/0002432

半分以上がネットで拾ったコードの切り貼りなので中身把握をしてないので非常に困ってます
(貼りつけたときは入出力だけは把握してたけど今は憶えてない)

何か良い知恵はありませんでしょうか

566 :nobodyさん:2011/06/08(水) 15:19:56.63 ID:???
ありません

567 :nobodyさん:2011/06/08(水) 16:33:19.10 ID:???
マルチ野郎に示す事など御座いません

568 :nobodyさん:2011/06/08(水) 16:44:17.90 ID:???
簡単にコードを追加できるものをスパゲッティとは呼ばん
つまりスパゲッティと形容している時点で簡単にコードを追加できる方法などない
ということだ
あとそのリンク先のジャーナリストの書くことを鵜呑みにしない方がいいぞ
原発事故関連でもいい加減な記事書き飛ばしてるような奴だ

569 :tokuhirom:2011/06/08(水) 16:54:43.75 ID:hreP7cYm
さいきんiphone晩モンスターハンターにはまってます
それで僕もモンスターハンター作りたいと思いました
JRPGの意思をついでCUI版モンスターハンターをつくりました
みてください
tokuhirom で検索すればモンスターハーター とくひろむ改が出てきますよろしくお願いします

570 :tokuhirom:2011/06/08(水) 16:56:31.93 ID:hreP7cYm
クソシテネロム
お得なヒロム
モンスターハンターのアカムトルムっていう敵がいるんですが
そのモンスターの名前が不満足だったので
トクヒロムに変更しました
今後ともtokuhiromをよろしくおねがいします

571 :nobodyさん:2011/06/09(木) 00:34:19.11 ID:???
3年の懲役w

572 :nobodyさん:2011/06/09(木) 10:52:05.32 ID:???
メモ書き失礼します (後々に他の人のためにもなるかなと・・・)

use AAA とした場合、package 名も同じにする必要があり、ファイル名とパッケージ名が異なる場合、
例えば AAA.pm に package ABC と記述があった場合は import ABC としなければならない。

1時間ぐらいずっと試行錯誤しててハマった。

573 :nobodyさん:2011/06/09(木) 10:53:11.77 ID:???
あっ、関数を Export する場合のお話です。


574 :nobodyさん:2011/06/09(木) 11:22:45.20 ID:???
そういう変なことはやめとけ

575 :otsune:2011/06/09(木) 15:38:19.04 ID:???
やっぱりぼくじゃ盛り上がりませんねな

576 :otsune:2011/06/09(木) 16:33:34.56 ID:???


577 :nobodyさん:2011/06/11(土) 02:48:16.45 ID:???
フォームから日本語を送信したときの動作に納得できない点があるので、教えてください。
(メモ:binmode STDIN, ":utf8"; で UTF8 フラグが付き、binmode STDOUT, ":utf8"; は UTF8 フラグが外される)


◆ TEST1
use utf8;
binmode STDIN, ":utf8";
print $form->param('string');
-> utf8::is_utf8($form->param('string')) : flag on
-> Apache Log : no Error

◆ TEST2
#use utf8;
binmode STDIN, ":utf8";
print $form->param('string');
-> utf8::is_utf8($form->param('string')) : flag on
-> Apache Log : no Error

◆ TEST3
use utf8;
binmode STDIN, ":utf8";
$str = decode('utf-8', $form->param('string'))
print $str;
-> utf8::is_utf8($form->param('string')) : flag on
-> Apache Log : Wide character in print

2回の投稿に分けます。


578 :nobodyさん:2011/06/11(土) 02:49:03.81 ID:/YP2SwiA
TEST1 と TEST2 は何故 Wide character in print のエラーが出ないのでしょうか?
テストのため binmode STDOUT, ":utf8"; は意図的に外してあります。

TEST3 で意図的に decode でフラグ立てたらちゃんとエラーが出ました。

ためしにソースに書かれた日本語を出力してみた

◆ TEST4
use utf8;
binmode STDIN, ":utf8";
print "あいうえお";
-> utf8::is_utf8("あいうえお") : flag on
-> Apache Log : Wide character in print

ちゃんとエラーになる。


579 :nobodyさん:2011/06/11(土) 03:39:34.99 ID:???
use utf8 は文字列リテラル(TEST4でいう「ソースに書かれた日本語」)をフラグ付きutf-8にする
binmode STDIN, ":utf8" は標準入力から入ってきた文字列を以下同文
$form->param('string') がそのどちらでもないなら勝手にフラグは立たないと思うが、
TEST1〜4 の flag on ってのは実際に is_utf8 で確認したって意味?

580 :nobodyさん:2011/06/11(土) 05:28:18.69 ID:/YP2SwiA
enctype の指定で application/x-www-form-urlencoded と multipart/form-data との違いも見てましたが、
multipart/form-data だと希望通りフラグが立ってると Wide character in print が出てくれますが、
application/x-www-form-urlencoded だとフラグが立ってても Wide character in print が出てくれません。


テストスクリプトです。
http://w3.podzone.net/charcode/

HTML、Perl スクリプト共に UTF-8 (BOM無し) です。


581 :nobodyさん:2011/06/11(土) 08:17:27.89 ID:???
>>580
そんなに詳しくはないですが、、、

multipart/form-dataだと生データが来るので、UTF-8オクテット文字列を受け取ることになります。
(UTF-8文字列が来るという>>580の想定通り)

application/x-www-form-urlencodedだとURLエンコードされたデータが来るので、(URLで許さ
れる)ASCII文字列を受け取ることになります。

ASCII文字列が来るのに、

binmode STDIN, ":utf8";

として、utf8でdecodeするのは、URLデコードするときに害が出るのでやめたほうがいいでしょう。
(場合によっては意図してASCII文字列をUTF8フラグONにしたいときもあるかもしれませんが)

このフォームデータがUTF-8になるのはURLデコードした後なので、URLデコードした後にdecodeし
ましょう。

今回のように、Latin-1(0x00FF以下)の出力では、UTF8フラグONの文字列でも「Wide character
in print」の警告は出ないです。

582 :nobodyさん:2011/06/11(土) 14:07:42.77 ID:???
どう見てもutf8フラグなんて立っていません。本当にありがとうございました。

583 :tokuhirom:2011/06/11(土) 17:33:03.72 ID:???
僕はたちません
童貞ですから

584 :nobodyさん:2011/06/11(土) 17:48:30.42 ID:???
それはEnd of Danseiki

585 :tokuhirom:2011/06/11(土) 17:56:32.64 ID:???
小飼・男性器

586 :nobodyさん:2011/06/11(土) 20:05:46.19 ID:???
こういう質問する人はたぶん文字コードと言えばSJISだと思ってる(というか
文字コードっていう概念を知らない)気がする

587 :nobodyさん:2011/06/11(土) 20:52:26.82 ID:wROrwK/J
utfのフラグの質問なのに、なんでsjisを出すんだ?
それにソースを見る限りはそこまで初心者って思えないけどな。

きみは良く「周りを見ろ」とか「憶測だけで物を語るな」とか言われるでしょ?

588 :nobodyさん:2011/06/11(土) 21:24:02.85 ID:???
>>587
言ってくれる友達がいないんです

589 :nobodyさん:2011/06/11(土) 21:26:57.13 ID:???
んでも、ネットに書いてあるからとりあえずそうしてみた程度で何も考えずコードコピペしてるようだし
文字コードの概念知ってても知らなくても大して変わらんとは俺も思う

590 :580:2011/06/11(土) 23:20:29.37 ID:9qKz+aFc
フラグが立ってるマルチバイト文字を出力すれば Wide character in print が出るんですよね?

>>581
ちょっとずつちょっとずつ理解してきたつもりだけど、application/x-www-form-urlencoded の時がまだ腑に落ちない。

例えば
use utf8;
binmode STDIN, ":utf8";
として application/x-www-form-urlencoded で日本語を POST したとき、
「%C3%A8%C2%B7%C2%AF%C3%A5%C2%9C%C2%B0%C3%A8%C2%A3%C2%8F%C3%A3%C2%81%C2%AF%C3%A3%C2%82%C2%B9%C3%A3%C2%83%C2%86%C3%A3%C2%83%C2%BC%C3%A3%C2%82%C2%B8%C3%A3%C2%81%C2%AB」
ってゆう文字列がくるんだけど、この文字列にフラグが立ってようが %C3%A8%C2%B7%C2%AF は 路 なので
「路地裏はステージに」
って文字列が CGI->param で得られるんだけど、CGI->param で得た文字列に対して utf8::is_utf8 で調べるとフラグが立ってると言われる。
でも CGI->param で得た文字列を print しても Wide character in print ってゆう warning が出てくれない。


591 :nobodyさん:2011/06/12(日) 01:44:16.42 ID:???
変数は勃っててもデータは勃ってないから

592 :nobodyさん:2011/06/12(日) 08:19:27.57 ID:???
>>590
%C3%A8%C2%B7%C2%AFは長いので、%C3%A8で説明します。

binmode STDIN, ":utf8";によって、%C3%A8というASCII文字がutf8としてdecodeされると、
%、C、3、%、A、8というutf8の6文字と認識されます(UTF8フラグがONされる)。

次に、CGI.pmでこれがURLデコードされると、"\x{00C3}\x{00A8}"というU+00C3、U+00A8の
2文字になります。

"\x{00C3}\x{00A8}"は両文字とも0x00FF以下(Latin-1)なので、printをしても
「Wide character in print」の警告は出ません。

Perl側から見ればprintによって、0xC3、0xA8というLatin-1の2文字を出力しますが、
ユーザー側がこれをUTF-8としてみれば、UTF-8の1文字として見えるでしょう。

593 :nobodyさん:2011/06/12(日) 11:45:41.83 ID:???
>>592
わかりやすい。参考になった。

594 :nobodyさん:2011/06/12(日) 19:27:32.04 ID:+q+sCwIP
群馬県高崎市に住む39歳AB型、製造業界で派遣プログラマーの仕事をしているhekenekoこと、黒飛健と申します。
新日本テクトスという会社を追われ、その後どうしてよいかわからなくなりました。
だけど私の大好きな尾崎豊の歌に励まされ、夢であるプロのクリエイターを目指すことにしました。
何度も挫けそうになりましたが、尾崎豊の歌を聞きながら自分を励ましています。
今も尾崎豊の歌のおかげで、夢を諦めずにCGアニメの製作を続けられています。

とりあえず、以下の動画を見てください。一生懸命作ったもので、自分では既にプロレベルの傑作だと思ってます。
できればみなさんのご意見、ご感想を聞きたいです。

復興支援アニメ.mp4
http://www.youtube.com/watch?v=yn4uTiN8vvM

湾岸鉄道キャンペーンCM(カラー).mp4
http://www.youtube.com/watch?v=g3PlX1OAhug&feature=channel_video_title


これは力作で、にしおかすみこさんにも是非見てもらいたかったため彼女のブログにコメントしたんですが無視されました。
http://blog.watanabepro.co.jp/nishiokasumiko/archives/2008/02/22_15_post_22.html
(下の方にあります。投稿者: hekeneko | 2008年03月24日 22:54)
やはり私の才能に気づいてくれる人は中々いないみたいですね(苦笑)。


題名”ラダニアムの翼”
A wing of radaniam_partU.mp4
http://www.youtube.com/watch?v=keSK70uqDJY
A wing of radaniamu part_V.mp4
http://www.youtube.com/watch?v=-LRZbXbirR0

題名”hekeneko honey”
http://www.youtube.com/watch?v=kATwf6fAkG8
私の世界観の全てを凝縮した力作です。hekenekoワールドをご堪能あれ。

595 :nobodyさん:2011/06/12(日) 23:14:57.36 ID:???
ファイルアップロードされた場合の容量チェックなんですが
受け取った後にチェックし容量オーバーの物は弾いているんですが
故意に大きなファイルを送られた場合サイト全体が重くなってしまいます。
受け取る前にチェックして弾けないでしょうか?

デコード処理の先頭に
if ($ENV{'CONTENT_LENGTH'} > 307200) {exit;};#300KB以上は弾く
また、apacheのLimitRequestBodyは試したんですがどうも全部送りきってるようです

596 :nobodyさん:2011/06/12(日) 23:49:00.65 ID:???
その議論はどっかでやったわ

597 :580:2011/06/13(月) 02:43:22.69 ID:DSl6uHf1
CGI 配下で動くものはサーバーが全て受け取ってからプログラムに渡すので無理

PHP は順次処理できたような気がするけど忘れた

javascript で事前に弾くか、actionscript 使うかだと思うよ。


598 :80:2011/06/13(月) 16:28:06.18 ID:DSl6uHf1
>>592
なるほど。
だからフラグが立ってても Wide Character 〜 のエラーは無かったのか。。。

ありがとうございました。

599 :580:2011/06/13(月) 17:01:03.50 ID:DSl6uHf1
url エンコードで送られてきたデータは CGI->param で受け取った後、
utf8::downgrade でフラグを外すようにしてみた。


600 :nobodyさん:2011/06/13(月) 17:30:07.28 ID:xEY/VF1J
自身のperlスクリプトで、自身が呼び出されたときのHTTPヘッダはどうやって見ることができますか?
よろしくお願いします。

601 :nobodyさん:2011/06/13(月) 17:33:21.86 ID:???
>>599
そんな回りくどいことをしなくても、単にbinmode STDIN, ":utf8"を外せばいいような。。

602 :nobodyさん:2011/06/13(月) 17:41:40.00 ID:J8VXPdgR
$in->content_type

603 :nobodyさん:2011/06/13(月) 17:43:48.94 ID:???
1から20ぐらい教えてもらわないと何も出来ない馬鹿なのさ

604 :nobodyさん:2011/06/13(月) 17:48:50.53 ID:???
マニュアルを読(よ)みましょう

605 :nobodyさん:2011/06/13(月) 18:39:23.75 ID:???
よよみましょう

606 :nobodyさん:2011/06/14(火) 13:07:26.29 ID:???
(よ) がふりがなであることも理解できないとはPerlコーディング以前の問題か

607 :nobodyさん:2011/06/14(火) 13:20:21.17 ID:z7HOILli
マジレスw

608 :nobodyさん:2011/06/14(火) 14:54:57.91 ID:???
>>606
おまえかわいそう

609 :nobodyさん:2011/06/14(火) 15:12:25.07 ID:???
>>608
>>608

610 :nobodyさん:2011/06/14(火) 19:50:59.02 ID:???
Hero セレクト画面

ジャスティス側の軍勢

Tokuhirom
Yappo
Yusukebe
まつもとひろゆき


カオティック側の軍勢
Mala
ssig33
Mizuti
otsune
はまちちゃん

611 :nobodyさん:2011/06/15(水) 16:52:13.47 ID:???
$string = 'まやら'; #'あいうわやえお'
$seach = '[わワワゎヮ][やヤヤゃャャ]'
$flag = 0;
if( $string =~ /$seach/ ){
$flag = 1;
}

SJISでひらがなを正規表現でマッチさせるとき、上記だと$flagが1になるようです。
文字コードの問題だと思い、
ttp://www.din.or.jp/~ohzaki/perl.htm#JP_Match
のサイトを参考に下記のように修正してみましたが、これであっていますでしょうか?
一応いくつかの文字列でテストしてみましたが、全てチェックできないので、助言をお願いします。

$string = 'まやら'; #'あいうわやえお'
$seach = '[わワワゎヮ][やヤヤゃャャ]'
$flag = 0;
$oneByte_sjis = '[\x00-\x7F\xA1-\xDF]'; # 1バイト SJIS文字
$twoBytes_sjis = '(?:[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC])'; # 2バイト SJIS文字
$character_sjis = "(?:$oneByte_sjis|$twoBytes_sjis)"; # SJIS文字
$seach = "^${character_sjis}*?(?:$seach)";
if( $string =~ /$seach/ ){
$flag = 1;
}

612 :nobodyさん:2011/06/15(水) 20:18:30.98 ID:???
>>611
Shift JISのままパターンマッチングさせずに
文字コードを適宜変換して行なうが吉。

613 :611:2011/06/16(木) 13:11:47.01 ID:???
>>612
ありがとうございました。
検討してみます。

614 :nobodyさん:2011/06/16(木) 21:41:46.04 ID:???
UTF8を使えば、こんなに簡単なのにな。

\p{InHiragana} ひらがな
\p{InKatakana} カタカナ
\p{Han} 漢字


615 :nobodyさん:2011/06/17(金) 17:18:33.75 ID:???
>>611
マルチバイト文字はperlの内部文字コードにdecodeしてから処理しましょう。

616 :nobodyさん:2011/06/18(土) 12:08:11.36 ID:???
大昔ならjperlの出番だったところだな
jperlとかjgawkとかよくお世話になった

617 :Perl忍者:2011/06/18(土) 19:06:40.18 ID:???
みんなこれフォロー
http://d.hatena.ne.jp/sugyan/20110616/1308203734

ここに乗ってるのフォローしてくださいお願いします

618 :Perl忍者:2011/06/18(土) 19:16:50.12 ID:???
みんなこれフォロー

「今すぐフォローすべきPerl界のスーパーエンジニア」

http://d.hatena.ne.jp/sugyan/20110616/1308203734

ここに乗ってるのフォローしてくださいお願いします

お願いですRuby のみなさんおねがいです

619 :nobodyさん:2011/06/19(日) 18:59:58.29 ID:HRt28/QV
Perl忍者
名前 treeboa
Web http://d.hatena.ne.jp/treeboa/
自己紹介 現在19歳学生です。 
☆Perl団体 TreeBox代表取締役☆ お気楽チャットの開発スタッフ  
Mac歴7年 OS9-OSX PPC perl,SQL

150 名前:ハマティー(・´ω`・) ◆G5mpn6hSoY1y [sage] 投稿日:2010/11/02(火) 01:35:44 ID:RlQq7G3l0 (PC)
お気楽チャットにスタッフがツイッターで暴言はいてるってメール送ったら返事帰ってきた
ご連絡ありがとうございます。
お気楽チャットの管理をしております、ホッシーと申します。
そのユーザーがお気楽チャットに出没していることは
知っておりますが、うちのスタッフではありませんし
当サイトにとっても、マナーの悪いユーザーです。
当初、スタッフを希望していましたが、却下しています。
チャット上での暴言や自ら公認の開発スタッフを名乗ることが多いのですが、
相手にするのも大変なので、放置状態になっていたところです。
今後状況によっては、こちらでも対応してまいります。
どうぞ、よろしくお願い申し上げます。

620 :nobodyさん:2011/06/20(月) 03:55:56.04 ID:???
>>619
ご指定のページが見つかりません。
URLをもう一度お確かめ下さい。

621 :nobodyさん:2011/06/20(月) 12:46:12.50 ID:???
遁走済

622 :nobodyさん:2011/06/20(月) 14:10:35.79 ID:???
Perl忍者って確か犬板や雲丹板に糞スレ立ててた奴と同一人物かな?
Perl忍者だか黒真珠だかなんかそんな単語見た記憶がある

623 :nobodyさん:2011/06/23(木) 02:12:59.75 ID:???
>>619
っせえ
黙ってろ

624 :nobodyさん:2011/06/26(日) 08:27:44.02 ID:RwbRFJ3B
ブログのエントリー ID を time() で付けて管理してますが、
SQL で何ページ分と言った感じで取り出してる場合、
指定したエントリー ID が何ページ目にあるのかを知る SQL なんてのはあるんでしょか?


やりたい事の例)
1000 〜 10999 で1刻みで合計1000個の発言をして、
1ページあたり10件の表示 (合計で100ページ)
そして例えば 10525 という ID を指定した場合に、その ID が含まれるページ番号
(この例なら 53 ページ目) を知りたい。



625 :nobodyさん:2011/06/26(日) 14:27:52.41 ID:???
>>624
>>1
データベース
http://hibari.2ch.net/db/
SQL自体を勉強したい
http://hibari.2ch.net/test/read.cgi/php/995806031/
PostgreSQL 2テーブル目
http://hibari.2ch.net/test/read.cgi/php/1047317680/


626 :nobodyさん:2011/07/04(月) 06:25:35.96 ID:???
文字化けの修復について聞くのはスレ違いかな?
自作のクローラで utf8 のサイトを euc-jpで decode → utf8 に encode してしまい
豪快に文字化けしてしまったんですが、逆の操作をしても元に戻せません。
何かヒントでもいいので修復方法について案はないでしょうか。

627 :nobodyさん:2011/07/04(月) 06:29:12.05 ID:???
連投すみません。
バイナリエディタで見たら大半の文字がREPLACEMENT CHARACTER(0xEF 0xBF 0xBD)に
置換されてました。修復不可能ですね。諦めます。

628 :nobodyさん:2011/07/07(木) 11:35:33.00 ID:???
#!/usr/bin/perl
use strict;
use warnings;
use TEST;
my $oTEST = TEST->new()
my $hoge = $oTEST->encode('utf8','ほげ'); ※1
print <<EOF;
<!DOCTYPE html>
<html>
<head>
<meta charset="utf8">
<title>$hoge</title>
</head>
<body>$hoge</body>
</html>
EOF
exit;
#----------------------------------------
package TEST;
use strict;
use warnings;
use Encode;
sub new{
my ( $oTEST ) = @_;
bless{},$oTEST;
}
1;

オブジェクトの勉強中で、上記のcgi本体とパッケージがあった場合に質問です。
→次レスに続く

629 :nobodyさん:2011/07/07(木) 11:36:57.47 ID:???
→続き

@本体、パッケージ両方にuse strict; use warnings;は両方書かないと
 それぞれで効力がないという認識でよろしいでしょうか?
ATESTパッケージでuse Encode;することで、cgi本体からは、オブジェクト$oTESTを使い
 $oTEST->encode()などでEncodeモジュールは使えないのでしょうか?
Bperl5.8.8から内部文字コードはutf8になったとのことですが、
 ※1の行は必要ないのでしょうか?

630 :nobodyさん:2011/07/07(木) 14:04:39.40 ID:???
1.はい(現在のスコープ(ファイル末尾)まで有効)
2.$oTESTはTESTをblessしてる(print ref $oTEST)からEncodeとは無関係(Exportもpackage TESTにされる)
それをしたいならour @TEST::ISA = qw/Encode/
3.ソースに書くならuse utf8した(internal form)上で Encode::encode(q/utf8/, qq/日本語/)

631 :nobodyさん:2011/07/07(木) 15:49:23.53 ID:???
>>630
継承させようがさせまいが
Package->encode(charset => 'string') は
Encode::encode('Package', 'charset', 'string') になるので
sub encode { shift; Encode::encode(@_) } のようなラッパーを書くか
Package::encode(charset => 'string') と呼ぶ必要があるように思うけど?

632 :nobodyさん:2011/07/07(木) 15:51:40.27 ID:cTS/XVoB
久々にビシっと決まってる回答を見た気がするw

633 :nobodyさん:2011/07/11(月) 15:41:41.97 ID:???
my $a = [
['0', 'ぜろ' ],
['5', 'ご'],
['1', 'いち'],
['3', 'さん'],
['7', 'なな']
];

上記リファレンスの$a->[*]->[0]でソートするにはどのように書けばよいでしょうか?

634 :nobodyさん:2011/07/11(月) 16:22:49.74 ID:???
まず $a って変数名をそこに使うのはよくないので $ref だとして、
my $sorted_ref = [ sort { $a->[0] <=> $b->[0] } @$ref ];

635 :nobodyさん:2011/07/11(月) 17:13:15.62 ID:yD3+Z2kH
'' なので cmp
または int 使って <=>

636 :nobodyさん:2011/07/11(月) 17:20:06.04 ID:???
イランだろ…

637 :nobodyさん:2011/07/11(月) 23:33:11.42 ID:???
>>635
int 付けるなんて何処の初心者サイトで覚えたんだ?
それっだけならまだしもcmp?!

% perl -MData::Dumper -le 'print Dump { $a <=> $b } qw( 2 12 )]'
$VAR1 = [
  '2',
  '12'
];
% perl -MData::Dumper -le 'print Dump { $a cmp $b } qw( 2 12 )]'
$VAR1 = [
  '12',
  '2'
];


638 :nobodyさん:2011/07/11(月) 23:36:10.57 ID:???
コピペみすった。正しくは以下。

% perl -MData::Dumper -le 'print Dumper [ sort { $a <=> $b } qw( 2 12 )]'
% perl -MData::Dumper -le 'print Dumper [ sort { $a cmp $b } qw( 2 12 )]'



639 :nobodyさん:2011/07/12(火) 01:22:03.73 ID:wRYQ1jhA
>>637
cmp も <=> は結果同じになったよ@v5.10.0 built for MSWin32-x86-multi-thread

640 :nobodyさん:2011/07/12(火) 02:36:13.33 ID:???
This is perl, v5.10.0 built for MSWin32-x86-multi-thread
Binary build 1003 [285500]

これでやったけど637が試したとおり <=> と cmp で順番変わったよ。

641 :nobodyさん:2011/07/12(火) 03:14:16.36 ID:???
>>638の2と12の間が全スペになってるせいではなくて?

642 :nobodyさん:2011/07/12(火) 03:29:13.00 ID:wRYQ1jhA
コピペだから気が付かなかった

643 :637:2011/07/12(火) 05:13:11.16 ID:???
…重ね重ねスマン。



644 :nobodyさん:2011/07/16(土) 06:11:17.47 ID:???
my $hostname = hostname();
$hostname =~ s/.jp//;

のような処理をしているのですが、
これを

my $hostname = s/hostname()/.jp//;

みたいな記述で1行にまとめることはできませんか?

645 :nobodyさん:2011/07/16(土) 06:36:14.55 ID:???
(my $hostname = hostname()) =~ s/\.jp//;

646 :644:2011/07/16(土) 08:40:37.68 ID:???
>>645
(ID変わってしまいましたが)
ありがとうございますm(_ _)m

647 :nobodyさん:2011/07/16(土) 11:10:57.76 ID:???
>>646
どういたしまして。

648 :nobodyさん:2011/07/24(日) 00:51:53.40 ID:dd4HTR7O
ブログを作ってるんですが、そのブログの中で頻繁に使う関数を別のファイルに追い出したのですが、
その追い出した関数郡を見直したときにオブジェクトにした方が楽になるのが幾つかありまして、
1つのファイルの中に3つほどのパッケージが存在すると言う状況になっています。
また、それらパッケージはそのファイルの中からしか呼ばれないものです。

で聞きたいことは、1つのファイルに複数のパッケージが存在して運用するのはイレギュラーなのかどうか。
です。

ちなみに
package MyFunc;
use base 'Exporter';
our @EXOPRTER = qw(testtest);
sub testtest{
  my $conf = CONFIG->new();
  $conf->aaaa();
}


package CONFIG;
sub new{
  my $self = shift;
  bless {}, $self;
}
sub aaaa{
}


このような感じで使っています。

649 :nobodyさん:2011/07/24(日) 02:21:17.78 ID:???
>>648
複数パッケージを1つのファイルにまとめる人もいるし、必ず分ける人もいる。
こんなところでアンケートを取るより、
手元の環境にインストールされてるモジュール群でも一通り調べてみたら?

650 :nobodyさん:2011/07/26(火) 17:16:04.58 ID:???
class感覚で使うなら分けたほうがわかりやすい気もするが
イレギュラーではないはず

651 :Perl忍者:2011/07/26(火) 17:51:15.95 ID:???
ゴミみたいだな
C#使いの俺から見たら
>>648の汚い忍者Perl文法がゴミのように見える

652 :nobodyさん:2011/07/26(火) 22:35:25.55 ID:???
まあ、あながち間違ってはいない。
クラスというものがないから、無理やり作ってる。
C言語でオブジェクト指向をする規約みたいなもんだ。

653 :nobodyさん:2011/08/02(火) 00:42:25.14 ID:??? ?2BP(1450)
ttp://megalodon.jp/2011-0529-1203-32/blog.plaync.jp/giko/302948.slog
ttp://blog.plaync.jp/giko/302948.slog
名前 treeboa
Web http://d.hatena.ne.jp/treeboa/
自己紹介 現在19歳学生です。 
☆Perl団体 TreeBox代表取締役☆ お気楽チャットの開発スタッフ  
Mac歴7年 OS9-OSX PPC perl,SQL

150 名前:ハマティー(・´ω`・) ◆G5mpn6hSoY1y [sage] 投稿日:2010/11/02(火) 01:35:44 ID:RlQq7G3l0 (PC)
お気楽チャットにスタッフがツイッターで暴言はいてるってメール送ったら返事帰ってきた
ご連絡ありがとうございます。
お気楽チャットの管理をしております、ホッシーと申します。
そのユーザーがお気楽チャットに出没していることは
知っておりますが、うちのスタッフではありませんし
当サイトにとっても、マナーの悪いユーザーです。
当初、スタッフを希望していましたが、却下しています。
チャット上での暴言や自ら公認の開発スタッフを名乗ることが多いのですが、
相手にするのも大変なので、放置状態になっていたところです。
今後状況によっては、こちらでも対応してまいります。
どうぞ、よろしくお願い申し上げます。

654 :nobodyさん:2011/08/02(火) 22:39:54.28 ID:GJET7PYj
すみません、パターンマッチの質問です。
環境変数を参照してロボット排除したいのですが、うまく動作しません。

if($ENV{'HTTP_USER_AGENT'} = ~ /www¥.baidu¥.com/){
print "Location: http://www.baidu.jp/¥n¥n";
exit;}

ってすると、普通にアクセスしてもbaiduに飛んでしまいます。
何がいけないのでしょうか?

655 :nobodyさん:2011/08/02(火) 22:45:31.57 ID:???
=~

656 :nobodyさん:2011/08/02(火) 23:02:51.53 ID:???
あ〜〜、空けちゃいけないんですね、今の今まで知らなかった

657 :nobodyさん:2011/08/06(土) 14:23:19.93 ID:???
レンタルサーバの場合、コマンドラインからモジュールのインストールが出来ないサーバがほとんどだと思うのですが、
cgiを置きモジュールを使いたい場合、どのようにインストールするのがスマートでしょうか。
(例)Email::MIMEやHTML::Templateのインストールなど

自分が思いつくのは、

自分のPCに使いたいレンタルサーバと同じ環境を作りそこでインストール → /usr/local/lib/*** をftpでアップロード

ですが、これだと使うレンサバが複数だと管理がかなり大変だと思っています。
みなさんが運用されている方法や参考サイトなどありましたら教えていただけますでしょうか。

658 :nobodyさん:2011/08/06(土) 14:40:27.88 ID:???
use lib

659 :nobodyさん:2011/08/06(土) 15:05:39.24 ID:8kKKWIjR
use lib 'DIR'

もし use lib が使えなくても、自身のディレクトリに PATH は通ってるので、
CGI が置いてあるディレクトリに置けばなんとかなる

660 :657:2011/08/06(土) 15:50:35.78 ID:???
>>658-659

ありがとうございます。
ちょっと質問の意図がうまく伝わっていないようですみません。
インストールしたモジュールの運用方法ではなく、
レンサバにどうやってインストールしているのか、の方法についての質問です。

sshログイン(コマンドライン)が使えるサーバであれば下記コマンドで簡単にインストールできますが、
ssh、telnetが用意されていない(コマンドラインが使えない)サーバで、モジュールをインストールするのに
なるべく簡単な方法を探しています。

cpan2rpm
yum
perl -MCPAN -e shell

質問の内容がわかりづらくてすみません。

661 :nobodyさん:2011/08/06(土) 17:12:10.73 ID:???
ローカルにインストールしてzipなりtgzなりで固めてftpで転送して展開する
コンパイルが必要なモジュールを含む場合は使えない手かもだが
スマートな方法ってのはよくわからないけど
たびたびアップデートする必要とかあるならスクリプトなりバッチなり書けばいいんでは

662 :nobodyさん:2011/08/06(土) 17:50:30.86 ID:???
makeするCGIを書く

663 :nobodyさん:2011/08/06(土) 21:03:23.04 ID:8kKKWIjR
pureperl なモジュールなら FTP でアップするだけ。

ssh とか入れない鯖が make 出来るとは思えないんで、pureperl なモジュールを探せばよいかと。

664 :nobodyさん:2011/08/06(土) 22:32:28.42 ID:???
鯖缶に頼む

665 :nobodyさん:2011/08/07(日) 04:09:32.20 ID:???
つか、1000円/月以下でレンタルできる
VPSをなんで使わないの?
使えばインストールなんて簡単なのに。

666 :nobodyさん:2011/08/07(日) 07:43:13.44 ID:???
>>665
500円/月以下でレンタルできる
ホスティングサービスが好きだからさ。

667 :nobodyさん:2011/08/07(日) 08:15:36.57 ID:???
DTIのVPSは490円だお

668 :nobodyさん:2011/08/07(日) 09:52:50.83 ID:???
DTIはアダルトコンテンツ禁止なんだよなあ(適法でも)

669 :nobodyさん:2011/08/07(日) 12:11:52.85 ID:???
月500円程度で、無駄な努力
アホすぎるw

670 :nobodyさん:2011/08/07(日) 16:26:03.31 ID:???
CGIからデータを吸い取ってこちらで加工したいと考えています
lwpでアクセスを試みましたが401エラーで弾かれてしまいました
どうやらIIS/5.0を使っている模様ですがどういう方法で接続するのか
どなたでもかまいません、助けていただけませんか

671 :nobodyさん:2011/08/07(日) 16:26:59.29 ID:???
>>669
よく理解できないまま参加してくるなよカス

672 :nobodyさん:2011/08/07(日) 16:29:10.51 ID:???
>>670
ttp://www.studyinghttp.net/status_code#Client_Error
IIS関係ない

673 :nobodyさん:2011/08/07(日) 16:33:34.83 ID:???
>>672
てっきりこれが原因かと思い込んでました
認証がうまく言ってない事は間違えなさそうですね・・・
さてどうしたものやら・・・
URLどうもです!

674 :nobodyさん:2011/08/07(日) 17:05:15.37 ID:???
>>673
どううまくいかないのか情報少なすぎ
とりあえず「lwp 認証」でググれ

675 :nobodyさん:2011/08/07(日) 22:10:28.67 ID:???
>>674
ローカルで.htaccessを設定した自分のサイトへのアクセスができるかの確認⇒自動ログイン成功
そのまま自動ログインしたいサイトに接続を試すとやっぱり401.3で弾かれる・・・
↓エラー
HTTP 401.3 - リソース上の ACL によってアクセスを拒否されました。
インターネット インフォメーション サービス


676 :nobodyさん:2011/08/07(日) 22:24:11.32 ID:???
具体的に

677 :nobodyさん:2011/08/07(日) 22:39:54.43 ID:???
ソース張ればいいかな?

678 :nobodyさん:2011/08/08(月) 01:45:38.66 ID:???
670です 二つの違いが少し分かりました
Authorization: Basic eW***********************==
となっているところが
Authorization: NTLM TlRM****************************==
cookie: __utma=********************
となっています これが原因でしょうか?

679 :nobodyさん:2011/08/08(月) 01:56:29.96 ID:???
とりあえずその cookie を食えるように cookie_jar を用意しよう。

680 :nobodyさん:2011/08/08(月) 01:57:39.13 ID:???
NTLM認証って分かったんだろ、それでcpanあたれよ

681 :nobodyさん:2011/08/08(月) 03:42:48.86 ID:???
my $ret = system( "ssh host command" );
としたとき、私の環境では、hostへの接続自体が失敗したときには 65280 を
commandの実行で失敗(存在しないコマンドの指定など)では 32512 が返されます。

しかしこの戻り値について言及された資料が見当たらず困っています。
65280 -> 1111 1111 0000 0000 -> (8ビットシフト) -> 255
32512 -> 0111 1111 0000 0000 -> (8ビットシフト) -> 127
のように何かルールがあるのかなぁ、とも思っているのですがお手あげ状態です。

環境は OSはRHEL 5.5、Perlは5.8.6です。
アドバイス願いします。

682 :681:2011/08/08(月) 03:45:28.40 ID:4gZkXztU
失礼しました。ageます。

my $ret = system( "ssh host command" );
としたとき、私の環境では、hostへの接続自体が失敗したときには 65280 を
commandの実行で失敗(存在しないコマンドの指定など)では 32512 が返されます。

しかしこの戻り値について言及された資料が見当たらず困っています。
65280 -> 1111 1111 0000 0000 -> (8ビットシフト) -> 255
32512 -> 0111 1111 0000 0000 -> (8ビットシフト) -> 127
のように何かルールがあるのかなぁ、とも思っているのですがお手あげ状態です。

環境は OSはRHEL 5.5、Perlは5.8.6です。
アドバイス願いします。

683 :nobodyさん:2011/08/08(月) 04:56:39.37 ID:???
ねえなんで資料がないとかぬかすわけ?
perlfuncにしっかりと書いてあるんですけど

684 :nobodyさん:2011/08/08(月) 09:57:55.09 ID:???
>>678
もう見つけてるだろうけど「ntlm認証 perl」でぐぐったらすぐ拾えたよ
LWP::Authen::Ntlm - LWP で (Microsoft) NTLM 認証を有効にするライブラリ 【perldoc.jp】
ttp://perldoc.jp/docs/modules/libwww-perl-5.813/LWP/Authen/Ntlm.pod

685 :nobodyさん:2011/08/08(月) 10:43:28.80 ID:???
>>679
やってみます
>>680,684
ありがとうございます私のほうでも何回か試しましたが、It didn't work!と出ていました
Mydomain\\ユーザー ←ドメイン・・・とはどれを指すのでしょうか

686 :657:2011/08/08(月) 11:20:55.90 ID:???
>>661,662,663,664,665

ありがとうございます。
pureperlであれば<<663さんの方法でいけますが、問題はバイナリを使う場合ですね。
pureperlで代替できる場合は問題ないですが、代替が無い場合は

ローカルで同じOS環境を作ってインストール(コンパイル)→インストールしたディレクトリ一式をftpでアップロード

しか方法はないのでしょうか。

※ >>662 を見て思ったのですが、これはcgiからsystem("make〜")などを使いインストールするということでしょうか?
具体的にどういう意味か教えていただけないでしょうか。参考サイト情報でも構いません。

687 :nobodyさん:2011/08/08(月) 12:40:58.89 ID:???
>>686
うちで借りてるのは安い共用ホスティングサーバだけど
sshでログインもmakeでコンパイルもできるよ。
まずは今どきmake(コンパイル)も使えないサーバはやめて
makeできるサーバに変更をおすすめします。その方が早い。

688 :nobodyさん:2011/08/09(火) 21:14:37.43 ID:???
$HTMLの中身に
<DIV class="list">
<a href="1.ここがほしい">
<IMG onload=function(){};
src="2.ここもほしい">
</A>
</DIV>
<DIV class="list">
<a href="1.ここがほしい" target="_blank">
<IMG onload=function(){};
src="2.ここもほしい" height=100>
</A>
</DIV>
こんなソースがあるとして<DIV>~</DIV>までを拾おうとしても何も拾えません・・・

$html =~ m#<DIV class="list">(.*?)</DIV>#g
これじゃだめなんですか?

689 :Perl忍者:2011/08/09(火) 21:19:45.72 ID:???
とっとと死ねよクソガリども

690 :nobodyさん:2011/08/09(火) 21:32:05.43 ID:???
>>688
置換演算子のせいだと思う

691 :nobodyさん:2011/08/09(火) 21:38:06.04 ID:???
++ hoge.pl ++
my $html = <<EOF ;
<DIV class="list">
<a href="1.ここがほしい">
<IMG onload=function(){};
src="2.ここもほしい">
</A>
</DIV>
<DIV class="list">
<a href="1.ここがほしい" target="_blank">
<IMG onload=function(){};
src="2.ここもほしい" height=100>
</A>
</DIV>
EOF

print $1 . "\n" if $html =~ m#<DIV class="list">(.*?)</DIV>#gs ;

++++++

% perl hoge.pl

<a href="1.ここがほしい">
<IMG onload=function(){};
src="2.ここもほしい">
</A>



692 :nobodyさん:2011/08/09(火) 21:56:14.92 ID:???
>>690 >>691
sをつければいいんですね 正規表現難しい・・・
ありがとうございます解決しました

693 :nobodyさん:2011/08/10(水) 09:24:22.00 ID:???
>>688
Web::Scraper 使うとラクだよ

694 :nobodyさん:2011/08/10(水) 11:33:10.14 ID:YwW/JKz0
bashで
array=( xx{01,02,03} )
とすると、arrayの中には xx01,xx02,xx03 という要素が生成されるのですが、
perlでも同じようなことはできないでしょうか?

695 :nobodyさん:2011/08/10(水) 12:59:40.29 ID:???
my @array = glob 'xx{01,02,03}';

696 :nobodyさん:2011/08/10(水) 13:44:32.98 ID:0CKj4BCr
glob ってそんなのにも使えるのか。。。

>>694
@array = map { 'xx' . $_ } '01'..'03';


697 :nobodyさん:2011/08/10(水) 14:41:56.36 ID:???
>>694
@array = map "xx0$_", 1..3;
@array = map sprintf 'xx%02d', 1..3;

698 :697:2011/08/10(水) 14:43:20.48 ID:???
ごめん、下は
@array = map sprintf('xx%02d', $_), 1..3;

699 :nobodyさん:2011/08/10(水) 14:49:31.77 ID:???
1つめは10以上が010となるから駄目じゃね?

700 :nobodyさん:2011/08/10(水) 14:57:18.45 ID:???
半角カタカナで質問です。

@アカアカをuriエンコードすると%B1%B6%B1%B6
A%B1%B6%B1%B6をuriデコードすると蔚蔚

となり文字が変わってしまいます。
カタカナの文字コードが%一つで表せられるためだと思うのですが、正常に変換させるにはどのようにしたら良いのでしょうか?

701 :nobodyさん:2011/08/10(水) 15:08:18.26 ID:???
URIに半角カナを使うな。以上。

702 :nobodyさん:2011/08/10(水) 15:11:12.07 ID:???
>>700
"\xB1\xB6" は Shift_JIS なら "アカ" だし EUC-JP なら "蔚"。
変換自体は正常に行われている。

703 :700:2011/08/10(水) 15:14:33.62 ID:???
>>701
助言ありがとうございます。

htmlの<form><input name=TEXT></form>でカタカナテキストを拾う場合、
どのようにすればよいのでしょうか?
ググったらPOSTもGETもURIエンコードされたものが送られてくるとありました。

ちなみにURIデコードは下記を使っています。
$str =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack( 'H2', $1 )/gxmse;

704 :700:2011/08/10(水) 15:42:30.56 ID:???
>>702

うまく変換できました。
エンコードサイトでも"蔚"になることを確認してたんですが、その時にも文字コードがごっちゃになってたようです。

ありがとうございました。

705 :nobodyさん:2011/08/11(木) 13:49:27.54 ID:???
受信したメールからタイトルと本文を取得しようとしています。
テストでタイトルに半角カタカナを入れたのですが、
下記を実行すると全角カタカナで表示されます。
半角は半角のまま取得したいのですが、どのようにすればよいのでしょうか?

use Net::POP3;
use Email::MIME qw();
use Encode;

my $pop3 = Net::POP3->new( 'server' );
my $count = $pop3->login(’user', 'pass');
my $messages = $pop3->list();

print "Content-type: text/html\n\n";
print "<html>\n";
foreach my $id (sort (keys %{$messages})) {
my $mail = join q(), @{ $pop3->get($id) };
my $parsed = Email::MIME->new($mail);
printf "%s<br>\n",encode( 'sjis', $parsed->header('Subject') );
}
print "</html>\n";

706 :nobodyさん:2011/08/11(木) 16:13:32.80 ID:???
>>705
メールのSubjectに半角カナを使うな。以上。

707 :nobodyさん:2011/08/12(金) 00:31:53.40 ID:???
URL(serch.cgi?key=検索文字)こんな感じで全角文字列をいれたら全角文字でもから始まる数字でもなく???c??O??のような文字化けしてしまった
検索結果を直接そこに入れたら結果を返すようなプログラムを作りたいのですがどうやったら回避できるのでしょうか

708 :nobodyさん:2011/08/12(金) 00:43:58.42 ID:???
文章読み返したら色々ひどい
日本語勉強しなおしたほうがいいんじゃないか俺・・・

709 :nobodyさん:2011/08/12(金) 07:49:11.55 ID:???
utf8 にエンコードされて送られてるよ

710 :nobodyさん:2011/08/12(金) 09:34:56.83 ID:???
>>705
そのメールを他のメールソフトで受信した場合は半角カタカナで表示されるのでしょうか?
他のメールソフトで受信した場合のそのメールの生ヘッダーを見せてください。

711 :nobodyさん:2011/08/12(金) 11:35:01.09 ID:???
XSS対策について質問です。
タグの中にユーザーの入力文字列を含む場合、
どの文字をエスケープしておけば安全なんでしょうか?

ググったものの「<」、「>」、「&」、「"」、「'」の5種類としてあるサイトばかりなのですが、
<a href="「ここに入力文字列」">hoge</a>
こういうケースだとjavascriptを実行されてしまうのではないかと思うのですが。
できることには制限がありそうですが、こういうのも一括して完全に防ぎたいです。

712 :nobodyさん:2011/08/12(金) 12:16:41.67 ID:???
>>711
http://www.ietf.org/rfc/rfc2396.txt
Parsing a URI Reference with a Regular Expression

ここを見ればいけるかな?

713 :705:2011/08/12(金) 12:57:25.68 ID:???
>>710

返信ありがとうございます。
とりあえず全角になる現状のヘッダ部分を貼り付けます。
タイトルも本文も全角になっています。
半角まる(。)も全角まる(。)になっています。

Return-Path: <xxx@docomo.ne.jp>
Delivered-To: xxx@xxx
Received: (qmail 24465 invoked by uid 610); 12 Aug 2011 12:44:11 +0900
Received: from unknown (HELO docomo.ne.jp) (203.138.203.xxx)
by xxx_server_xxx with SMTP; 12 Aug 2011 12:44:11 +0900
Received-SPF: pass (xxx_server_xxx: SPF record at docomo.ne.jp designates 203.138.203.xxx as permitted sender)
Date: Fri, 12 Aug 2011 12:44:09 +0900 (JST)
From: xxx@docomo.ne.jp
To: xxx@xxx
Subject: aaaaa=?iso-2022-jp?B?GyRCSD4zUSUrJT8lKyVKGyhC?=
=?iso-2022-jp?B?GyRCISMhIyEjISMhIxsoQg==?=
Message-ID: <XXXXXXXXXXXXXXXXXXXXXX@docomo.ne.jp>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="STMsgeYV"
Content-Transfer-Encoding: 7bit

--STMsgeYV
Content-Type: text/plain; charset="iso-2022-jp"
Content-Transfer-Encoding: 7bit

さはやわ
半角カタカナ。。。。。
です

714 :nobodyさん:2011/08/12(金) 13:35:54.26 ID:???
>>712
ありがとうございます。
あれは例に出しただけで、URI等関係なく一括して防ぐ方法は無いものかと思った次第です。

正直なところjavascriptの埋め込み方が多彩で把握し切れてないです。
hrefだけが例外なんですかね?

715 :nobodyさん:2011/08/12(金) 13:43:39.60 ID:???
自己解決。
これはページ内で実行してるのとは別物っぽいですね。
他にも似たようなタグがあったら怖いなーと思ってましたw

716 :nobodyさん:2011/08/12(金) 15:00:37.39 ID:???
>>713
ふつーに全角の「半角カタカナ。。。。。」をエンコードしてあるように見える。

暇つぶしでDoCoMo端末からPC宛てに「半角カタカナ。。。。。」で送ってみたけど
これキャリアのほうで全角変換かかってない?絵文字→〓みたいな感じで。

717 :nobodyさん:2011/08/12(金) 15:17:04.05 ID:???
>>713 >>716
ISO-2022-JP に半角カナ (JIS X 0201 片仮名) は存在しないので
他の文字コードで MIME エンコードしなければ
半角カナを含む Subject を正しく送れる保証はない。

718 :716:2011/08/12(金) 15:28:27.02 ID:???
>>717
やっぱりそこかなーと思うんよ。
キャリアが JIS X 0208 のカタカナに変えてくれてるみたい。
端末で UTF-8 + MIME-B とか選べるわけでもないしさ。

昔のMUAだと charset="ISO-2022-JP" を謳うボディに
JIS X 0201 カタカナ を混ぜられると色々崩壊したなあ。

719 :nobodyさん:2011/08/12(金) 16:39:32.81 ID:???
>>713
docomoは携帯電話網からインターネットへ送る際に、半角カタカナ → 全角カタカナの変換を行っている
ようなので、インターネット経由でメールを受け取る場合はあきらめるしかないですね。

720 :nobodyさん:2011/08/12(金) 23:52:37.17 ID:???
[status]
file1 ... success
file2 ... failed
file3 ... success

ファイル生成後の結果を ゲームなどのinit確認画面のように準に表示させたいのですが
通常すべてが終わってからバンとでますよね
どうやったら perlでも少しずつ表示させる事ができるのでしょうか?



721 :nobodyさん:2011/08/13(土) 01:48:13.47 ID:???
モダンなPerlでオブジェクト指向をするとしたら
何を使うのが普通なのでしょうか?

722 :nobodyさん:2011/08/13(土) 02:34:57.31 ID:???
プチダノン

723 :nobodyさん:2011/08/13(土) 11:03:35.03 ID:???
>>720
$| = 1;


724 :nobodyさん:2011/08/13(土) 13:27:07.63 ID:???
>>723
調べたがさっぱり・・・もう少しkwsk

725 :nobodyさん:2011/08/13(土) 13:36:44.01 ID:???
perlvarを見て

726 :nobodyさん:2011/08/13(土) 14:36:16.72 ID:???
>>725
!分かりました。ありがとうございます

727 :Perl忍者:2011/08/13(土) 17:21:11.33 ID:???
低レベルスレ低レベルスレ低レベルスレ低レベルスレ低レベルスレ低レベルスレ低レベルスレ低レベルスレ低レベルスレ
低レベルスレ低レベルスレ低レベルスレ
低レベルスレ低レベルスレ低レベルスレ低レベルスレ
低レベルスレ低レベルスレ低レベルスレ低レベルスレ低レベルスレ低レベルスレ低レベルスレ

728 :721:2011/08/13(土) 21:44:54.73 ID:???
ですが、誰かレスお願いします。

729 :nobodyさん:2011/08/13(土) 21:57:43.69 ID:???
>>728
perlを使わない

730 :nobodyさん:2011/08/13(土) 22:00:05.80 ID:???
>>729
それ以外はありませんか?

731 :nobodyさん:2011/08/13(土) 22:26:28.82 ID:tZoTBnu9
Moose

732 :nobodyさん:2011/08/14(日) 01:51:41.43 ID:???
Perl5+オブジェクト指向であれば
Mooseが本命なのでしょうか?

での標準モジュールではないですよね・・・?

Perlは標準モジュールとしてはモダンなオブジェクト指向を
サポートしない方針なのでしょうか?
それとも将来Mooseが標準モジュールとして
採用される可能性はありますか?

733 :nobodyさん:2011/08/14(日) 07:30:47.02 ID:???
Mooseが標準モジュールになる事なんて有り得ない。
「モダン」ってーのは言葉づらだけで、「はやり」ってルビを振って読め。
つまり標準ってーのは流行廃りと無関係の立ち位置。
(誰が始めたんだ?このモダンって糞用語)



734 :nobodyさん:2011/08/14(日) 07:31:58.81 ID:???
あ、「モダン」な物全てを否定してる訳では無いよ?

735 :nobodyさん:2011/08/14(日) 10:01:11.90 ID:???
「モダン」になる前のPerlがあまりにもひどかったから、「モダン」とつけて線引きしたかったんだろうなぁ。
どこかに、PerlでObjectを作る際の例を何点か挙げて、比較検討してるところがあったと思うんだが、そういったとこを見て、場合によって使い分けるのが現実的ではあると思う。

が、面倒ならやっぱりMooseじゃね?
Mouseとかもあって、更には他にMooseが使われてるならMoose、Mouseが使われているならMouseを使うようにするモジュールまであったと思うんだが、そもそもそれらの遷移が早くって、一昔前のモジュールを使ってみたらこっちで使えないとかいう。。。

736 :nobodyさん:2011/08/14(日) 10:28:29.33 ID:???
> (誰が始めたんだ?このモダンって糞用語)
Mozillaじゃね? モダンブラウザとか言ってさw

737 :nobodyさん:2011/08/14(日) 11:42:59.34 ID:???
>>721
Perl5であれば素のままでオブジェクト指向プログラミングができる
モジュールに依存しないから、Perl5のバージョンを上げても大丈夫

>>733
ユニコード対応に失敗したのに気づいたときに「モダン〜」でごまか
そうとした
10年前の失敗につけた名前なのでもうモダンでも何でもない


738 :nobodyさん:2011/08/14(日) 12:02:18.90 ID:???
>>733
>ユニコード対応に失敗したのに気づいたときに「モダン〜」でごまか
>そうとした
>10年前の失敗につけた名前なのでもうモダンでも何でもない
まるで「ラリーが言ってる」みたいな事、書くなよ。
perl5.6の時点で既にperl6 の構想自体はあったのに、
perl5.6をモダンなんて持ち上げる訳が無い。


739 :nobodyさん:2011/08/14(日) 12:18:38.54 ID:???
モダンな実装とモダンなコーディングとモダンなモジュールとはそれぞれ別に考えたほうがよくないかな

740 :nobodyさん:2011/08/14(日) 12:27:01.17 ID:???
>>739
それはいいアイディアだ。
つまり、>>721の求める「モダンなPerlのオブジェクト指向」というのが何を指しているのか?ってところだな。

テストが無いのがレガシーって考え(?)なんてのまであるらしいから、はっきり決めないと収束しないべ

741 :Perl忍者:2011/08/14(日) 12:27:20.49 ID:???
モダンとかカジュアルとかまじやめてくれねえかな
死んでください

742 :nobodyさん:2011/08/14(日) 14:01:27.05 ID:???
Perl忍者とか生きてんのまじやめてくれねえかな
死んでください

743 :nobodyさん:2011/08/14(日) 14:20:08.26 ID:???
モダンがどうとかどうでもいいが、
少なくともnewかいてblessがどうとか
そういう話をするのは見苦しい。

オブジェクト指向のやり方を使ってアプリを作りたいのであって
オブジェクト指向の仕組みを作るのが目的じゃないんだから。

744 :nobodyさん:2011/08/14(日) 15:12:51.39 ID:???
無理してperl使う必要無いよ?


745 :nobodyさん:2011/08/14(日) 15:14:26.15 ID:???
他の人がPerlばっかり使っていて
そう決まっているから仕方ないのです。

746 :nobodyさん:2011/08/14(日) 15:14:44.89 ID:???
Moose万歳の人は、同数以上のMooseに批判的、否定的な人がいると
言う事に気付かないのか?


747 :nobodyさん:2011/08/14(日) 15:23:26.68 ID:???
Mooseを批判している人は
何を使ってるの?

単にオブジェクト指向が理解出来ないだけ?

748 :nobodyさん:2011/08/14(日) 15:29:11.49 ID:???
??意味不明
Moose はどうでもいいけど。
普通に new, bless 使ってコード書きゃいいだけだろ。



749 :nobodyさん:2011/08/14(日) 15:31:33.93 ID:???
>>748
それを楽に書く書き方がMooseってだけなんだが、
なんでMooseを批判しているの?

面倒なことをやりたいだけ? ドM?
少し勉強するだけで、簡単にかけるのに
単に勉強嫌いか頭が硬くなっただけじゃない?

750 :nobodyさん:2011/08/14(日) 15:40:11.97 ID:???
「標準モジュールに無いモジュールを使われて、それを
標準モジュールオンリーのスクリプトにリライトする」
仕事をした事があった上で、その意見を言えるなら尊敬するわ、俺。

個人的にMooseを弄らなくも無いが、怖くて仕事には使えん。


751 :nobodyさん:2011/08/14(日) 16:00:00.46 ID:???
なんか暑くいや熱くなってるところ申し訳ないが質問があるます

my $res = $ua->get( qq($url) );
これで取得した検索結果になぜかだぶりが出てしまって困っています。
実際のWEBで見るとそんな現象はおきないので 何かしらの設定不足があると思うのですが・・・

752 :nobodyさん:2011/08/14(日) 16:01:51.92 ID:???
>>758
俺なら、標準モジュール以外を
使わないと決めたやつをぶん殴るわw


これがもしC++ならBoostは使わないってことだし。
JavaならSpring、SeasorなどのDIコンテナを使わないってことだし、
C言語だと、ネットワーク通信すらできないな。

753 :nobodyさん:2011/08/14(日) 16:02:16.82 ID:???
「窓の手入れたら色々捗るよ!」
「会社のPCに、んなモン入れられるか、どアホウ!」

754 :nobodyさん:2011/08/14(日) 16:03:20.51 ID:???
「窓の手入れたら色々捗るよ!」
「会社のPCに、んなモン入れられるか、どアホウ!」
「じゃあカスタマイズしたい時はどうするんだよ。」
「窓の手を自作すればいいじゃないか!」


755 :nobodyさん:2011/08/14(日) 16:04:01.99 ID:???
そして車輪の再発明を
行い続けましたとさ。

おしまい

756 :750:2011/08/14(日) 16:04:20.31 ID:???
>>752
もちろん必要なら許可は出る。
Mooseみたいなwrapper+αには許可は出ない。

Inline::CでCコードが埋め込んであったスクリプトを
perlに書き換えた時は地獄だった。


757 :nobodyさん:2011/08/14(日) 16:06:35.03 ID:???
あるあるw

他人が作ったライブラリを信用しないで
全部オレオレライブラリを自作する会社w

でそういうのは大抵質が悪いし機能も少ないし、
会社専用の知識だから、外部での経験もいかせないし、
技術者も育たないし、どんどん腐れていくんだよな。

758 :nobodyさん:2011/08/14(日) 16:07:50.49 ID:???
>>756
> 「標準モジュールに無いモジュールを使われて、それを
> 標準モジュールオンリーのスクリプトにリライトする」

あれ? そういう仕事じゃなかったのですかw
嘘だったんですか?


759 :nobodyさん:2011/08/14(日) 16:09:05.65 ID:???
>>756
> Mooseみたいなwrapper+αには許可は出ない。

そこに正当な理由がないことに気づかないのか?


760 :nobodyさん:2011/08/14(日) 16:10:07.20 ID:???
ま、お偉いさん(笑)決めたルール。

実は「俺が理解出来ないものは使わん」が
理由だとしても、それに逆らう勇気もなし。

761 :751:2011/08/14(日) 16:17:26.24 ID:???
だれか、ヒントでもいい!たのむ!

762 :nobodyさん:2011/08/14(日) 16:17:37.23 ID:???
めんどくさいんで、>>760の言う通りと言う事で。
ちゅーかこっちは、科研費で生きてるからボスの言う事には
逆らえんし、先人のスクリプトを他のサーバに移すからと言われれば
ハイハイと言わざるを得ん。


763 :nobodyさん:2011/08/14(日) 16:20:44.40 ID:???
うん。だろうねw

ダメな上につく下っ端

の現実の話だったってことが
わかって皆満足さw

764 :nobodyさん:2011/08/14(日) 16:23:29.15 ID:???
つか、Perlの標準モジュール = cpanモジュールって知らないのかな?
(Mooseもcpanモジュール)

他の言語に比べて標準である価値は低いし、
平気で互換性がない変更をしてくる。

仕事で使うのが怖いというのなら、
Perlそのものが怖いわw

765 :nobodyさん:2011/08/14(日) 16:31:39.39 ID:???
>>764
何拡大解釈してんだアホウ。
煽りたいのは勝手だが、perldoc perlmodlib に standard module の項目は
きちんと書いてある。

煽りまくりで楽しいのは分るが、妄言を吐いてまで煽る意味があんの?


766 :nobodyさん:2011/08/14(日) 16:37:37.82 ID:???
>>765
え? Perl以外使えないの?

767 :nobodyさん:2011/08/14(日) 16:41:05.35 ID:???
>>766


768 :nobodyさん:2011/08/14(日) 17:15:45.52 ID:???
>>751
$uaってのがなんだかわからんのに答えられないと思うが

ダブりがあるってならその「ダブり」をキーにして、grepでハッシュに登録してけばいいんでね?

769 :nobodyさん:2011/08/14(日) 17:16:52.95 ID:???
あぁ。変なレスですまなかったがgrepじゃなくてmapだったな。最初別の事考えたんで混乱した。

770 :nobodyさん:2011/08/14(日) 17:32:27.60 ID:???
行き当たりばったりの適当な対応提案すんな。
それだといろいろやってたまたま動いたら、
それでOKみたいな学生レベルと一緒だろ。

771 :nobodyさん:2011/08/14(日) 18:56:06.61 ID:???
$ua は LWP::UserAgent のインスタンスだろうと思うが、
$url の中身が示されてないし「これで取得した検索結果」と言われても不明なので誰も検証できません。

772 :705:2011/08/14(日) 22:52:43.69 ID:???
>>716-719

docomoが勝手に全角にしてるんですね。。
絵文字の〓と同じ対応か。
勉強になりましたありがとうございます。

773 :751:2011/08/14(日) 23:12:15.22 ID:???
レスありがとうございます。
>>768
把握
>>771
そこは教えられないんだすまない
同じ検索結果なのにブラウザで見るのとperlから見るので違うなんてありえるの?

774 :nobodyさん:2011/08/14(日) 23:13:55.42 ID:???
だぶりって、なに?

775 :nobodyさん:2011/08/14(日) 23:51:56.87 ID:???
実際におきてるんだからあるんだろ

それか手前のスクリプトが糞なだけか

776 :751:2011/08/15(月) 00:16:40.34 ID:???
>>775
後者の可能性が高そうな気がしてきた

777 :751:2011/08/15(月) 00:28:29.15 ID:???
自己解決しました
調べて見たら俺の単純なミスだった事が分かった
変数の初期化を忘れて、予期せぬ値を読み込んでいたのが原因でした。

778 :nobodyさん:2011/08/15(月) 00:42:07.92 ID:???
モダンってゆうのは結局「今」ってこった
「今」に縛られてると永く持つコードかどうかは怪しくなる

だからオレとしてはモダンかどうかよりも長持ちするコード
を優先する
自分で作る場合でも、他の人のを使う場合でも

流行りを煽る物書きもいるけど、そこは冷静に判断する目が
必要



779 :nobodyさん:2011/08/15(月) 00:51:49.31 ID:???
>>738
perl5.6の時点で既にperl6 の構想自体はあったのに、

実在しないのにモダンとなw


780 :nobodyさん:2011/08/15(月) 01:44:11.06 ID:???
>>778
> モダンってゆうのは結局「今」ってこった

いや、そんなの辞書引けば書いてるし・・・

> だからオレとしてはモダンかどうかよりも長持ちするコード
> を優先する

世の中に長持ちするコードなんて無いよ。
お前が長持ちすると思っているコードは、
全時代に「モダン」だったコードだ。

少し先の時代まで持ち越そうと思ったら
「今」のコードで書かないといけない。

781 :nobodyさん:2011/08/15(月) 06:01:45.61 ID:???
>世の中に長持ちするコードなんて無いよ。
何の為にコーディング規約があると思ってんだ?
それともコーディング規約が架空の物だと思ってる人?


782 :nobodyさん:2011/08/15(月) 06:47:56.86 ID:???
あんた、それ、ニートに「社内規則ってあるでしょ?」って言ってる様なもん。
通じないよ。


783 :nobodyさん:2011/08/15(月) 08:44:52.82 ID:???
忍者うぜえ

784 :nobodyさん:2011/08/15(月) 15:03:30.84 ID:???
例えば子供がいっぱい集まってプログラミングをやってるスレがあったとする
それは誰かに主導されるわけでもなく何となく集まって来て自然にルールも出来て適当にコード書いて見せ合うって言う社会の常識みたいなのがある

そこに急に大人が介入してきてこれからこういう書き方にしよう コーディングはこう言うのが凄いからこれにしなさい。できたチームには入社させてあげるから 子供達は純粋に楽しいだろうか?
入社に釣られてムキになったり変な亀裂が生じたり色んな問題が出てくる
子供達からルールの設定とかを頼まれたならまだしも行きなり表れて仕切り始める

しかもその仕切り始めた大人達は子供達にこう言う本を買ったらプログラミングが上手くなるよとかの宣伝をするのが真の目的だったと

これが今からモダンPerlがやろうとしてる事

785 :Perl忍者:2011/08/15(月) 15:04:09.12 ID:???
例えば子供がいっぱい集まってプログラミングをやってるスレがあったとする
それは誰かに主導されるわけでもなく何となく集まって来て自然にルールも出来て適当にコード書いて見せ合うって言う社会の常識みたいなのがある

そこに急に大人が介入してきてこれからこういう書き方にしよう コーディングはこう言うのが凄いからこれにしなさい。できたチームには入社させてあげるから 子供達は純粋に楽しいだろうか?
入社に釣られてムキになったり変な亀裂が生じたり色んな問題が出てくる
子供達からルールの設定とかを頼まれたならまだしも行きなり表れて仕切り始める

しかもその仕切り始めた大人達は子供達にこう言う本を買ったらプログラミングが上手くなるよとかの宣伝をするのが真の目的だったと

これが今からモダンPerlがやろうとしてる事

786 :nobodyさん:2011/08/15(月) 15:24:55.39 ID:???
雑談でやれクソ共 (o^∀^o)

787 :nobodyさん:2011/08/15(月) 16:18:29.93 ID:???
例えば子供がいっぱい集まってプログラミングをやってるスレがあったとする
それは誰かに主導されるわけでもなく何となく集まって来て自然にルールも出来て適当にコード書いて見せ合うって言う社会の常識みたいなのがある

そしてそれがMoose


以上で話は終わりだろ。
何をグダグダ言ってるんだ?

788 :nobodyさん:2011/08/15(月) 17:14:16.27 ID:???
子供たちがボールを蹴って遊んでいる。

そこにプロがやってきてプロの業を披露する。


あとは、そのテクニックを自分も身につけようと
どんどん成長していくか、
ボールけって遊んで終わりになるかの違い。

789 :nobodyさん:2011/08/15(月) 21:21:12.68 ID:???
今使っているテンプレートエンジンはHTML::Templateなのですが、
みなさんテンプレートエンジンはどういったモジュールを使っていますか?
他のものに変えようか迷ったので参考にさせて下さい。

790 :nobodyさん:2011/08/15(月) 21:51:05.33 ID:???
Perl 5 今昔
前は王道だったあの書き方も最近ではこうかな、というもの集です。

http://perl-users.jp/nowpast.html

791 :nobodyさん:2011/08/15(月) 23:27:11.16 ID:???
プログラミングを重視する
・書き捨てていくことで生計が成り立つ
・書き換えることが実入りになる
→モダンに乗っかる必要がある

プログラムを重視する
・永く使えるコードを書く
・書き換えることが出銭になる
→モダンに乗ってはいけない

目指すところが正反対なら議論はかみ合わないんじゃ

ま日雇いといっても、俺くらいの格にもなれば週払い
なんでそんなこと気にとめなくなるがな


792 :nobodyさん:2011/08/15(月) 23:57:14.65 ID:???
>>790
…そのURL、単に個人の主観が連ねてあるだけ。

Templateなんて、リリース時期で言えば HTML::Templateと
1年しか違わず、HTMLやらない人間にとっては昔から王道もいいとこ。
HTML::Templateと棲み分けが違ってただけだ。


793 :nobodyさん:2011/08/16(火) 00:36:44.71 ID:???
あのー、初心者なんでひとつ質問していいですか?

モダン、モダンって言ってるひとはどうしてモダンを流行らせたいんですか?
流行らせようとしているひとは何か得するんですか?

エバンジェリストになりたいってことで合ってますか?
どうせオメーラわかんねーだろーってことですか?

そうですか、分かりました


794 :nobodyさん:2011/08/16(火) 00:43:42.15 ID:???
>全時代に「モダン」だったコード

これは長持ちしそうですね


795 :Perl忍者:2011/08/16(火) 07:55:32.31 ID:???
>>793
一人で質問して納得しててきもちわるいよ
それ質問自分でして回答終わらせてるな
きも
早く死ね

796 :nobodyさん:2011/08/16(火) 08:38:18.24 ID:???
>>793
モダンは流行らせたいんじゃなくて、
主に上級者の間で、流行っているやり方だよ。


797 :nobodyさん:2011/08/17(水) 00:06:44.16 ID:???
ちぇー'з'
やっぱり初心者おとこわりか.


798 :nobodyさん:2011/08/17(水) 01:23:43.30 ID:???
×初心者おとこわり
○諦めた奴が初心者

799 :nobodyさん:2011/08/17(水) 06:48:00.61 ID:???
モダンって騒いでるのは、一部の牽引連中を除き
ttp://d.hatena.ne.jp/naoya/20050809/1123563794
のレベル6クラスの連中だろ。自己評価はレベル8とかの。

「CPANディストリビューターだから!」
upしたのはAcme::だけw


800 :nobodyさん:2011/08/17(水) 21:32:38.15 ID:???
>>799
CPANコミュニティ参加は、技術とは別の意味で敷居が高いとして、
DBIやCGI.pm使ってる程度でいいのなら簡単にレベル8行くんじゃない?

そこに書いてあるMethodMakerは古いけど、
今で言うならMooseの機能劣化版みたいなものだし。

自分は他の言語をやっていたけど、Perlは本格的に仕事でやり始めて一年半ぐらい。
シンボルテーブルの操作もやってるからレベル9に足突っ込んでるレベルなのかな。

もちろんPerlカンファレンスとかには参加してないけどw

他の言語(オブジェクト指向)をやっていたものからすると
モダンPerlレベルじゃないとPerlは実用レベルとは認められないな。
オールドPerlは単純にクラス作って真っ先に書かせられるnewとblessの関数が面倒。

801 :nobodyさん:2011/08/17(水) 23:18:31.33 ID:???
そのレベルの全ての条件を満してから、そのレベルを名乗れ。


802 :nobodyさん:2011/08/17(水) 23:33:07.75 ID:???
まさに
>のレベル6クラスの連中だろ。自己評価はレベル8とかの。
を体現してみせたレス

803 :nobodyさん:2011/08/18(木) 01:58:10.63 ID:???
いやw 別にこんなののレベル付けになんて興味はないからw
どうせあとはPerlコミュニティに協力するという
技術とは関係ない部分だし。

ただ、MethodMakerやDBIがレベル8や9って
バランスおかしくない? これぐらいは中級者レベルでしょ?

804 :nobodyさん:2011/08/18(木) 05:41:05.11 ID:???
興味津々じゃねーか。その割には文章読解力が壊滅的だけど

perlコミュに協力 = それだけの技術力の裏付けがある
×MethodMakerを使う -> ◯などの開発者向けモジュールを使い始める
×DBIを使う -> ◯複雑なアプリケーションモジュールを適宜使用
×CGI.pmを使う -> ◯Web ベースのアプリケーションを作成する

ググれば解説もどきが氾濫してるご時世なんだから
使うだけだったら、中級者どころか超初心者でも使うだろ


805 :nobodyさん:2011/08/18(木) 05:43:45.95 ID:???
主眼では無いって意味で×書いた
×じゃなくて△の方が意味が通ったな


806 :nobodyさん:2011/08/18(木) 08:55:34.01 ID:???
とりあえず、どっかのpmのIRCで会話出来てから出直してくるといいんでね?

807 :nobodyさん:2011/08/18(木) 14:34:10.45 ID:???
crypt()は暗号化のみのようなのですが、
pureperlな暗号/複合ができるモジュールで一般的なものはどういったものがありますか。
参考にしたいだけなので主観で構いません。

一応下記は見つけたのですが、モアベターなものを使いたいです。
ttp://search.cpan.org/author/MATTBM/Crypt-Blowfish_PP-1.12/


808 :nobodyさん:2011/08/18(木) 16:56:58.65 ID:???
multipart/form-dataで送られたデータを受け取るのにいい方法はないでしょうか

CGI::Lite;を使おうと2日間試行錯誤したのですが、特定のデータを送られると
if ($current_buffer =~ /(.*?)(?:\015?\012)?-*$boundary-*[\015\012]*(?=(.*))/os) {
の辺りで固まってしまうようです。

CGI::Lite;くらいの小さいモジュールか、コピペできるコード無いでしょうか?
一括してハッシュ形式+ファイルは保存できるものが希望です。

809 :nobodyさん:2011/08/18(木) 17:47:38.25 ID:???
Unicode::Japaneseでz2hを使いたいのですが、
文字コードは変換前sjis→変換後sjisにしたいです。

どのようにすればよいでしょうか?

810 :nobodyさん:2011/08/18(木) 21:46:01.48 ID:???
前も後もsjisならJcodeを使ったほうがよくね?

811 :nobodyさん:2011/08/18(木) 21:46:44.52 ID:???
amp;や&lt;&gt;の処理について詳しく書いてあるところなかったので、いろいろ何回も試してみたまとめですが
おかしなところや違っているところはありますか?。

<INPUT TYPE="hidden" NAME="aaa" VALUE="&amp;gt;">

<SELECT NAME="bbb">
<option VALUE="&lt;&gt;">
</SELECT>

↑のようにhiddenやoptionみたいに最初からVALUEが設定されている場合は送信したとき
&amp;が&に&lt;&gt;が<>に自動変換されるけど、
<INPUT TYPE="text" NAME="ccc">みたいに入力してから送信する場合は
<>&lt;&gt;&amp;lt;と入力して送信しても変換されず><>&lt;&gt;&amp;lt;のまんまでした。

812 :nobodyさん:2011/08/18(木) 21:49:05.95 ID:???
そして確認画面を作る場合は入力して送信したデータをhiddenに一時的に書き込んでおかなくてはならないので

&amp;gt;が自動変換により&gt;に&lt;&gt;が<>になってしまうのを防ぐために

$FORM_DATA{'aaa'} =~ s/&/&amp;/g;
$FORM_DATA{'bbb'} =~ s/&/&amp;/g;
$FORM_DATA{'ccc'} =~ s/&/&amp;/g;

$FORM_DATA{'aaa'} =~ s/</&lt;/g; $FORM_DATA{'aaa'} =~ s/>/&gt;/g;
$FORM_DATA{'bbb'} =~ s/</&lt;/g; $FORM_DATA{'bbb'} =~ s/>/&gt;/g;
$FORM_DATA{'ccc'} =~ s/</&lt;/g; $FORM_DATA{'ccc'} =~ s/>/&gt;/g;

を使ってaaaの&amp;gt;を&amp;amp;gt;にbbbの&lt;&gt;を&amp;lt;&amp;gt;に
cccの<>&lt;&gt;&amp;lt;と入力したデータを&lt;&gt;&amp;lt;&amp;gt;&amp;amp;lt;に変換しました。

そして書き込むとhiddenに格納されているaaaの&amp;amp;gt;が&amp;gt;に
bbbの&amp;lt;&amp;gt;が&lt;&gt;にcccの&lt;&gt;&amp;lt;&amp;gt;&amp;amp;lt;が
&lt;&gt;&lt;&gt;&amp;lt;に自動変換されてファイルに書き込まれました。

これを読み込んでoptionのVALUEに戻す場合は読み込んだデータが&amp;gt;ならば<option VALUE="&amp;amp;gt;">&amp;gt;として
amp;を増やせば上手くいきました。
どこか違っているところはありますか?


813 :nobodyさん:2011/08/18(木) 22:48:30.04 ID:???
>>811
根本的なことだが、
<input type="hidden" name="aaa" value="&gt;" />
ってのは、hidden だろうが text だろうが、input でなく select/option だろうが、
初期値が > のインプットフォーム aaa を描画(hidden なら見えないが)するという意味
つまりブラウザがレンダリングする時点ですでに &gt; でなく > になってるってことだ
送信の時に何か特別な処理がされるわけじゃない
このへんがわからないなら Perl 関係ないから HTML の質問スレとかで聞け

変換処理についての話をするなら、
HTML に埋め込む時(普通に表示する時と input の値にする時)だけ &gt; とかに変換することにして、
それ以外の時は変換しない(データの保存やらは > とかのまま)ということにするのが一番簡単かと思う

814 :nobodyさん:2011/08/18(木) 22:49:41.57 ID:???
jcodeかnkfで日本語・英語以外に対応できますか?

815 :nobodyさん:2011/08/18(木) 22:56:24.69 ID:???
>>811-812
根本的なことだが、テンプレートエンジン(Template Toolkit等)とFillInFormと
フレームワーク(CGI::Application、Catalyst等)を組み合わせて作るから
そんなつまらないコードは書いていない。

816 :809:2011/08/18(木) 23:29:42.23 ID:???
>>810

助言ありがとうございます。
肝心の部分を間違えていました。

変換前sjis→変換後sjis ×
変換前jis→変換後sjis ○

変換前がsjisではなくjisでした。
ここ見ると
ttp://search.cpan.org/~hio/Unicode-Japanese-0.36/lib/Unicode/Japanese/JA.pod

こんな感じのことをしたいのですが。↓

$unijp = Unicode::Japanese->new();
$unijp->set($str,'jis');
$unijp->sjis;
$unijp->z2h->get;

817 :nobodyさん:2011/08/19(金) 00:32:24.71 ID:???
>>808
CGI::Lite ってずいぶん昔にメンテ止まったきりじゃなかったっけ?
ttp://perldoc.jp/docs/modules/CGI-Lite-2.001-emergencyrelease/Lite.pod
↑ここの最下を参照。
現在2.02みたいだけどなんとなく最小限のメンテしかされてなさげ。

どうしても小さいモジュールじゃないとダメなの?
素直にCGIモジュール使っとくのが無難じゃないかと思うけど。

# その昔、リソースの不足気味な環境下でCGI::Liteを使ってみて
# ヒドい目にあったことがあるんだよな…

818 :nobodyさん:2011/08/19(金) 00:55:50.61 ID:???
ネットにあるPerlの情報古いからね。
今時Jcodeとかアホみたい。

だからモダンPerlなんて用語ができるんだよ。
わざわざモダンと言わなければ、
ネットのPerlが古いとわからない。

819 :nobodyさん:2011/08/19(金) 02:12:29.52 ID:???
モダン小飼

820 :nobodyさん:2011/08/19(金) 02:44:46.80 ID:???
jisからsjisに変換するためにUTF-8に回り道する必要がない
jcode.pl、あるいはモダンこだわるならjacode.plでもよし
jacode.plならわずらわしい警告が表示されないので便利


821 :nobodyさん:2011/08/19(金) 03:49:07.87 ID:???
でも今は、だいたい内部をUTF-8にするでしょ?

822 :nobodyさん:2011/08/19(金) 04:13:59.57 ID:???
文字列として加工する必要がないんだったら
単にナマのコードとして扱えばいいだけだしょ。
JIS→UTF8→SJISだと2回、テーブルを引きながら変換する必要があるけど、
JIS→SJISだとテーブルを引くまでもなく1回計算するだけでコード変換できちゃう。

…あれ? テーブル引いた方が速いか?

823 :nobodyさん:2011/08/19(金) 08:26:00.62 ID:???
JIS→UTF8→SJISだと問題の発生しうる箇所が2箇所
JIS→SJISだと1箇所
初心者スレなんで、とりあえず1箇所のほうを薦める


824 :809:2011/08/19(金) 10:00:23.02 ID:???
>>820-823

ありがとうございます。

>JIS→UTF8→SJISだと問題の発生しうる箇所が2箇所
>JIS→SJISだと1箇所
>初心者スレなんで、とりあえず1箇所のほうを薦める

この場合の一か所の方法はどのような方法になりますでしょうか?

825 :nobodyさん:2011/08/19(金) 11:49:25.74 ID:???
ちゃんと jacode.pl を入手したか?


826 :nobodyさん:2011/08/19(金) 11:50:43.51 ID:???
http://leagueoflegends.jpcommunity.com/ LoL JP Community オープンしました! #loljp via Janetter

LoL JP Community への登録はお済でしょうか?
まだの方は、できるだけ早めに登録をお願いします

現在200名以上の方が登録し、コミュニティーの一員となっております
国内でLoLを盛り上げるため、誠心誠意尽くす所存でございます

LoL JP Community では、大会やイベントの主催、動画配信、同人誌や攻略本の販売を予定しています

それに伴い、ボランティアスタッフの募集もしています
大会配信での運営スタッフ、解説者、実況者、サイトコンテツ製作のプログラマー(CGI、Perl、PHP,Ruby等)
書籍製作の絵師、小説家、自分の特技をLoL JP Communityで活かしてみませんか?
応募希望者はサイト内フォーラムまでご連絡ください
※仕事に応じて報酬もでます
------------------------------------------------------------
LoL JP Communityへの登録はとても簡単です
以下の4つ手順を踏んで頂くだけです

1.サイトにアクセスする (http://leagueoflegends.jpcommunity.com/
2.左のフレームのログイン>新規登録のリンクをクリック
3.ユーザ登録画面に必要事項を記入する
4.送信ボタンを押す
------------------------------------------------------------

以上、よろしくお願い致します

827 :nobodyさん:2011/08/19(金) 11:55:00.84 ID:???
変換効率とか余計なことを考えずに Unicode::Japanese を使っとくのがスマートで無難かもね。
ttp://d.hatena.ne.jp/dayflower/20060530/1148951624

828 :nobodyさん:2011/08/19(金) 12:43:51.18 ID:???
文字列比較について質問です

$name=",";
$FORM{'name'}="&#8218;"; #入力された名前

if($name eq $FORM{'name'}){

print "その名前は既に使われています";

}
else{

print "その名前は使われていません";

}

&#8218;は,として表示されるので
実体は違う名前でも表示は同じ名前になってしまうので、その名前は既に使われていると表示させたいです。
でもその名前は使われていませんとなってしまいます。

,の場合だけではなく全ての&#○○○○;を実体に変換して比較できればいいのですが、何かいい方法はないんでしょうか?

829 :nobodyさん:2011/08/19(金) 12:58:31.29 ID:???
そりゃすべての&#xxxx; を変換してから比較するしかないべや。
便利なモジュールや注意点については自分でググれ。
「perl 実体 参照 変換 モジュール」あたりで。

830 :nobodyさん:2011/08/19(金) 13:39:52.05 ID:???
数値文字参照(&#○○○○;)の他にも実体文字参照(&アルファベット文字列;)もあるから
名前の入力には半角の&と#は禁止するしかない

831 :nobodyさん:2011/08/19(金) 15:24:25.10 ID:???
名前に記号が含まれる事は無いしな
ハンネはともかく・・・

832 :809:2011/08/20(土) 11:07:15.93 ID:???
>JIS→SJISだと1箇所
の方法で

require 'jacode.pl';
while (defined($s = <>)) {
&jcode'convert(*s,'sjis','jis');
print $s;
}

でうまく変換できました!ありがとうございました!


833 :809:2011/08/20(土) 11:58:32.45 ID:???
(初心者なので h は今度教えてください)


834 :nobodyさん:2011/08/20(土) 14:00:08.35 ID:???
ユニコード文字をフォームに入力してファイルに書き込むときの質問ですが

if($ENV{'REQUEST_METHOD'} eq "POST"){
$syurui = $ENV{'CONTENT_TYPE'};
read(STDIN, $all_data, $ENV{'CONTENT_LENGTH'});
}
else{ $all_data = $ENV{'QUERY_STRING'};}

@groop = split(/&/,$all_data);
foreach $ans(@groop){

($name,$value) = split(/=/,$ans);

$value =~ tr/+/ /;
$value =~ s/%(..)/pack("c",hex($1))/ge;
$FORM{$name} = $value;

}

use utf8とかいうの使わなくても一応上のやり方で
フォームから送信したデータ取得して(&#形式になるが)
書き込んで表示できたんですがこれでは問題がありますか?

835 :nobodyさん:2011/08/20(土) 21:09:16.64 ID:???
>>832
>&jcode'convert(*s,'sjis','jis');
perl4の記法を素で書く奴、久々に見た…

jacodeの方で、perl5記法サポートを謳ってるんだから、
perl5記法で書けよ。
jcode::convert \$s, 'sjis', 'jis';


…ちなみにperl4の最終リリースは1993年。


836 :nobodyさん:2011/08/20(土) 22:17:59.43 ID:???
>>835
それを言うくらいならまず直で Encode 使えよって話だけどな。
jcode.pl は言うまでもなくすでに過去のものだし、
そのインターフェースを引き継いだ jacode とかいうのにしたって所詮バッドノウハウでしかないんだから。

つか>>832のそれは ttp://search.cpan.org/perldoc?jacode.pl の SAMPLES のコピペだな。

837 :nobodyさん:2011/08/20(土) 22:40:52.13 ID:???
Encodeを使えは同意なんだけど、レスの流れがそうじゃなかったからねw
「jacode.plがモダン」って言うレスもあるし、そこは仕方ないかと思ったんだ
単なるコピペだったか。

それで思い出したが、はてなの「車輪の再発明」の項に
「Perlにおける「車輪の再発明」の実例」なる項目が…
ttp://d.hatena.ne.jp/keyword/%BC%D6%CE?κ%C6?%CC%C0

jcode.pl->Jcode.pmは再発明と言うよりrewriteで、
Jcode.pm->Encode.pmって両方、同一人物関与だろ?
車輪の再発明って言うのか?
(今のJcode.pmはEncode.pmのラッパである事は置くにしても)


838 :nobodyさん:2011/08/20(土) 23:06:43.89 ID:???
初心者はEncodeのドキュメントの洪水におぼれて終わる
うまいことおぼれなかった場合は今度はutf8フラグの
餌食になって終わり

jcode.plではそんなことはない

Encodeはどうしたって中級者以上のスキルがないと使えない



839 :nobodyさん:2011/08/20(土) 23:18:01.69 ID:???
Perlにおける「車輪の再帰的改良」の実例

jcode.pl→Jcode.pm→Encode.pm→Jcode.pm(2.0)→jacode.pl

※マジレスしない



840 :nobodyさん:2011/08/21(日) 00:49:50.58 ID:???
> jcode.plではそんなことはない

ただし、Unicode文字列を正規表現で扱いたくなったり
バイトではなく文字数単位で計算したくなったら
面倒なことになる。


841 :nobodyさん:2011/08/21(日) 01:01:54.75 ID:???
このさい条件を限定して考えてみよう。

初心者もいつかは成長する。
jcodeもEncodeもどちらも簡単に使えるようになる。

Perlはもはや保守だけ。JavaやRubyに移行中。新システムを作ることはない。
だから既存のjcodeコードをいじるだけでいい。
そういう人は答えが出てる。今使っているものだけを使えばいい。
初心者なら逆に0から作るって人もいるだろう。

だから何も無いところからアプリを作るとき
jcodeもEncodeもどちらも楽々出来る人は
どちらを選ぶのか、その理由を語りましょう。

俺の意見は、 標準モジュールかつ日本語以外も
対応しているからEncodeモジュール一択。どや?

842 :nobodyさん:2011/08/21(日) 01:06:14.46 ID:???
>>838
> Encodeはどうしたって中級者以上のスキルがないと使えない

お前は中級者以上だからEncode使えるんだよな?w

初心者はお前以上のスキルを目指したらあかんの?w


843 :nobodyさん:2011/08/21(日) 03:25:42.41 ID:???
どうもこんばんわ
perl使ってHTMLを作ろうとした際にエラーが出て困っています
print qq(<HTML><head><title>テスト用ページ</title></head><html>);
print qq(<HTML><head><title>テスト用ペ\ージ</title></head><html>);
としてもエラーで動いてくれないんですが回避する方法はありませんか

844 :nobodyさん:2011/08/21(日) 04:04:16.34 ID:???
>>843
まず文字コードとしてUNICODEを使うようにしましょう。
それが現在の標準です。

その後にテンプレートエンジンについて勉強しましょう。
これも今の標準的なやり方です。

845 :nobodyさん:2011/08/21(日) 04:21:32.95 ID:???
Content-Type 吐かないとエラー出るよとエスパーしとけばいいのかな。

846 :nobodyさん:2011/08/21(日) 04:26:51.46 ID:???
die するとサーバーのエラーログに残りますが、
スクリプトを終了させずにエラーログに残す場合はどうやるんでしょう?

847 :nobodyさん:2011/08/21(日) 04:27:50.04 ID:???
あっ、STDERR に出力したら出来た。
面汚し失礼←

848 :nobodyさん:2011/08/21(日) 05:31:46.32 ID:???
その矢印は突っ込めという意味なのか

849 :nobodyさん:2011/08/21(日) 11:21:19.71 ID:???
日本ではEncodeの資料が豊富にあるが、アメリカでは
そうではなく、Encodeが使われることはまずない
(それは需要がないせいかもしれない)

数年前、Larryの肩越しにディスプレイを覗いたとき、
あわてて両手で隠されたことがあったっけ
どうやら覚えた漢字を表示させようとしていたらしい
Encodeを使おうとしてたみたいだけどよく見えなかった

その後、彼はEncodeについて多くを語ろうとしない



850 :nobodyさん:2011/08/21(日) 11:37:28.70 ID:???
Larryカワユス

851 :nobodyさん:2011/08/21(日) 11:47:59.97 ID:???
つまらんネタ

852 :nobodyさん:2011/08/21(日) 11:59:58.98 ID:???
> アメリカでは
> そうではなく、Encodeが使われることはまずない

だが、アメリカにnkfもjcodeもないだろ?
じゃあ何使ってるのさ?

それいうのなら単に多言語化してない。
Unicodeも使ってない。の間違いじゃねーのかw


853 :nobodyさん:2011/08/21(日) 12:22:24.41 ID:???
半角カタカナで送信すると文字化けするのが困っていましたが
jcode.plのconvertを使わないだけで解決しました

854 :809:2011/08/21(日) 12:26:40.02 ID:???
jcode::convert \$s, 'sjis', 'jis';

を試したところ、エラーになったので原因を調べたら
学校のperlはperl4でした

Unicode::Japaneseが使えない理由もこれでわかりました
あとz2hは

&jcode'convert(*s,'sjis','jis','h');

にしたらできました
自分で調べてもなかなか役に立つ資料がなくて、このスレの
助言がなかったら絶対できなかったと思います

本当にありがとうございました☆


855 :nobodyさん:2011/08/21(日) 12:31:51.05 ID:???
>>834
ユニコード文字の送信書き込みは、書き込みファイルがANSIの場合
ブラウザが自動で&#にしてくれるから
perlでユニコードのデコードを考える必要はないよ

856 :nobodyさん:2011/08/21(日) 12:38:55.75 ID:???
>>854
初心者スレだから、当たり前のことでもちゃんと教えてあげるよ。

perl4はすでにサポートも終了していて
世間で使っているところは皆無。
20年近く前に更新されていない。

現在標準のPerl5とは互換性もかなり失われて、
オブジェクト指向もサポートされていない。

学校でそれしか使えないのなら、ご愁傷さま。
だがそれが許されるのは高校までだろう。
現実に出ればPerl5ばかりなので、初心者が
今手を出すと逆に損をするバージョンだ。

857 :nobodyさん:2011/08/21(日) 13:46:42.76 ID:???
>>854
何で書かなくても良い事を書くかねえ?
>学校のperlはperl4でした
1993年最終リリースで、今のmakeできちんとコンパイル出来るか
どうかも分らない代物だぞ?それが、学校で入ってるもんか?
(個人で学校のPCに入れたなら、そもそもこの質問をするレベルの人じゃないし)

↓の595からの流れを思い出した。
ttp://www2.atpages.jp/mirror/2ch/perl/prog/read.php/1157874614/590-611

makeしてみたい人用
ttp://www.cpan.org/src
ttp://www.cpan.org/src/unsupported/


858 :nobodyさん:2011/08/21(日) 15:10:32.38 ID:???
10年以上更新もメンテもされてないサーバにログインして作業するしかないような
超貧乏学校だったらひょっとしたらあるかもしれんね。
でもそんなふざけた学校は嫌だな。

859 :nobodyさん:2011/08/21(日) 15:33:29.91 ID:???
初心者に環境を聞くと

「近くに山があります。」

みたいなことになるので、オレは聞かない。

その代わり、どんなコンピュータ環境でも動作しそうな回答を
した方が前に進む。

モダンは○○○だからとか、標準は□□□だとか、普通ユニ
コードだとかをどや顔で語っても、今困ってて、何かを解決しよう
としている初心者にとって何の役にも立たない。

誰だって、初心者だったときがあったのだから。



860 :nobodyさん:2011/08/21(日) 15:54:24.70 ID:???
初心者スレで質問すると、
そこにいる初心者が答えるので、俺は聞かない。

また自称中級者(笑)が初心者ならこの程度まで
そこから出てくるなと、言わんばかりの書き方の
押し付けをしてくるので俺は聞かない。

>>859のような奴なw

初心者に答えを聞いたところで
まともな答えが帰ってくるわけがない。

861 :nobodyさん:2011/08/21(日) 16:40:19.06 ID:???
と、初心者が語っております。

862 :nobodyさん:2011/08/21(日) 16:56:43.47 ID:???
ほらねw

863 :nobodyさん:2011/08/21(日) 18:09:57.34 ID:???
>>858
perlなんてただで手に入るのに貧乏とか関係ないだろ

864 :nobodyさん:2011/08/21(日) 18:15:09.66 ID:???
そういう馬鹿を装った釣りはおもしろくないです

865 :nobodyさん:2011/08/21(日) 19:09:46.77 ID:VFxGIRsL
サブルーチンについてだけど
&で呼び出すのと::で呼び出すのはどう違うのか教えてください

866 :nobodyさん:2011/08/21(日) 19:47:36.27 ID:???
>>865

use strict;
use warnings;

sub bar { print "@_ main::bar\n"; }
sub Foo::bar { print "@_ Foo::bar\n"; }

bar(1);
&bar(2);
::bar(3);

{
package Foo;
bar(4);
&bar(5);
::bar(6);
}

867 :nobodyさん:2011/08/21(日) 20:12:01.10 ID:???
>>865
&はまんま、サブルーチンの呼び出し法の一つ
::は名前空間へのアクセスの為の区切り文字(列)

あなたが普段使ってるpackageは、mainで、
mainのサブルーチン(SUB),変数(VAR)などに
名前空間明示的にアクセスするには、
 main::SUB;, &main::SUB;, $main::VAR;
などの方法がある。同様にpackage名がHogeなら、
 Hoge::SUB;, &Hoge::SUB;, $Hoge::VAR;
(package Hoge中なら明示せずにアクセス可能 SUB, &SUB, $VAR)
でpackage mainに関しては「mainを」省略可能なので
 ::SUB;, &::SUB;, $::VAR;
という記法が成り立つ(>>866氏の::bar(3); ,::bar(6); )

全然概念が違うので違いもへったくれも語れない。
アプリケーションとパスの違いを教えてくださいと言ってる様なもん。



868 :nobodyさん:2011/08/21(日) 21:40:47.62 ID:???
全然概念が違うというが、
違う理由が書いてないなw

869 :nobodyさん:2011/08/21(日) 21:42:26.01 ID:???
2, 3行目が読めないのか?

870 :867:2011/08/21(日) 21:48:23.45 ID:???
書き方が悪かった。
元のレスは、

###################
&はまんま、サブルーチンの呼び出し法の一つ
::は名前空間へのアクセスの為の区切り文字(列)
全然概念が違うので違いもへったくれも語れない。
アプリケーションとパスの違いを教えてくださいと言ってる様なもん。
###################

それだけでは不親切(つか866氏のレスをその時に見た)なんで、
具体例を真ん中に挟んじまった。
混乱させたか?


871 :nobodyさん:2011/08/21(日) 22:03:25.50 ID:???
っつか、::なんてPHPでもC++でも見かけるから殊更説明つけるような事なかったんじゃね?
PHPerならともかく、Perl一筋なんて奴は普通見かけないから

872 :nobodyさん:2011/08/21(日) 22:23:43.70 ID:???
貴方の既知が他人の既知とは限らない
貴方の周辺が他人の周辺と同一構成とも限らない


873 :nobodyさん:2011/08/21(日) 22:36:44.12 ID:???
>>865
http://perldoc.jp/docs/perl/5.10.1/perlfaq7.pod#Whats32the32difference32between32calling32a32function32as32foo32and32foo40
http://perldoc.jp/docs/perl/5.10.0/perlmod.pod#Packages

874 :nobodyさん:2011/08/22(月) 13:17:50.41 ID:???
ヒヤドキュメントの中でif文などの処理はできないんですか?

875 :nobodyさん:2011/08/22(月) 16:36:22.30 ID:???
eval 使えば?

876 :nobodyさん:2011/08/22(月) 16:58:01.55 ID:???
>>874
@{[do{ ここにPerl構文を書く }]}

my $is_male = 1;

print <<STRING;
I am a
@{[do{
if( $is_male ) {
"BOY!!";
} else {
"GIRL!!"
}
}]}
STRING


877 :nobodyさん:2011/08/22(月) 23:31:40.17 ID:???
>>876
これを見難いと思うようになれば一人前。


半人前はなんでも一発でやろうとする。

878 :nobodyさん:2011/08/23(火) 00:38:44.27 ID:???
TreeBuilderで、
<div class="onajinamae">
<div class="onajinamae">
</div>
</div>
上記の内側のdivだけヒットさせたいんですが、イカすやり方ないですか?
配列入れて〜っていうならできるんですが。


879 :nobodyさん:2011/08/23(火) 00:43:04.77 ID:???
TreeBuilder


ってなに?

880 :nobodyさん:2011/08/23(火) 13:42:37.75 ID:???
>>817
遅くなってすみません、ありがとうございました。
CGIモジュールと結構コード違うなーと思ってたんですが止まってたんですね。
仕方ないので自前で書いてみますー。

881 :nobodyさん:2011/08/24(水) 03:09:36.43 ID:???
自前で書くとか馬鹿じゃね?

初心者は自前で書こうとするくせがあるよなw

882 :nobodyさん:2011/08/24(水) 04:38:03.04 ID:???
余計なコードが邪魔なんらもん

883 :nobodyさん:2011/08/24(水) 15:39:57.97 ID:???
へたくそなコード見ると使う気なくすもん

884 :nobodyさん:2011/08/24(水) 15:42:47.07 ID:???
自分で使うだけなら自前コードでもいいだろ別に。
少なくともメンテ放棄されてるCGI::Liteを無理に使うよりはだいぶましだろう。

885 :nobodyさん:2011/08/24(水) 16:04:30.68 ID:???
CGI::Simpleはダメ?

886 :nobodyさん:2011/08/24(水) 16:14:56.14 ID:???
自分でサブルーチンを作っていく場合
packageして::で呼び出すよりもpakageしないで普通に&で呼び出したほうがいいんじゃないでしょうか?

例えばpakage test1;の中にsub www{}というサブルーチンを作った場合
やっぱりあとでpakage test2にwwwを移したい場合
&test::www;で呼び出した箇所を全部&test2::www;に修正しなければならないでしょ
でもpakageしなければwwwをどのファイルに移動させても&www;の箇所を修正しなくてすむから


887 :nobodyさん:2011/08/24(水) 16:24:45.69 ID:???
>>886
そうだね

888 :nobodyさん:2011/08/24(水) 16:25:42.66 ID:???
>>886
フツーはパッケージ名をコード中にバラまくような事はせず
use Foo qw(bar); を use Foo2 qw(bar); にするだけだし。

889 :nobodyさん:2011/08/24(水) 18:07:47.81 ID:???
>>886
パッケージ名を抱合した変数を使って関数を呼ぶようにしたらいいと思うよ。

my $object = bless {}, "test1"; # パッケージ名を変更したらここをtest2にするだけ
$object->www(@arg); # = test1::www($object, @arg); 最初の引数に$objectが入っちゃうけど

890 :nobodyさん:2011/08/24(水) 18:15:28.44 ID:???
配列 @array=("a00","a01","a02","a03","a04") があるときに
先頭から03を含む要素のインデックスを取得したいと考えています。

単純に記述すると
my $pos = -1;
for( my $i=0; $i<@array; $i++ ){
__if( $array[$i] =~ /03/ ){
____$pos = $i;
____last;
__}
}

のようになると思うのですが、
1行で記述できるような、もう少し簡単にする方法はないでしょうか?


891 :nobodyさん:2011/08/24(水) 18:27:20.29 ID:???
@new_ind = grep { $array[$_] =~ /03/ } 0 .. $#array;

892 :nobodyさん:2011/08/24(水) 18:30:31.29 ID:???
spliceでいいんじゃない?

893 :890:2011/08/24(水) 18:34:06.85 ID:???
>>891
ありがとうございます。
自分もgrepでどうにかならないか考えたのですが、
0 .. $#array
とする発想がありませんでした。

894 :nobodyさん:2011/08/24(水) 18:38:42.27 ID:???
#1
my $pos = -1;
for my $i (0..$#array) {
next unless $array[$i] =~ /03/;
$pos = $i;
last;
}

#2
use List::Util qw(first);
my $pos = first { $array[$_] =~ /03/ } 0..$#array;
$pos = -1 unless defined $pos;

#3
use List::MoreUtils qw(firstidx);
my $pos = firstidx { /03/ } @array;

895 :nobodyさん:2011/08/24(水) 18:42:19.26 ID:???
バージョンが新しいPerlなら、0 .. $#array を keys @array ともできるね。
でも互換性を考えると前者が無難なのかな。

896 :nobodyさん:2011/08/24(水) 19:26:43.70 ID:???
>>889
それがコンストラクタを意味するんだったら、
パッケージ名直打ちするなんてバッドノウハウもいいとこ。


897 :nobodyさん:2011/08/24(水) 19:54:45.23 ID:???
高林さんの提唱するところのバッドノウハウってのは、バッドだけどやむを得ない理由で普及してるノウハウ、みたいな感じでしょ。
>>889はひたすらバッドなだけだと思うんだけど。

あと>>886は単にExporterか何か使って>>888しろ、で済む話だね。

898 :nobodyさん:2011/08/24(水) 22:20:43.25 ID:???
書籍で載ってんだぜ?そのコード


899 :nobodyさん:2011/08/25(木) 01:22:19.57 ID:???
書籍が正解とは限らないわけで

900 :nobodyさん:2011/08/25(木) 02:58:01.90 ID:???
>>886
初心者に初心者がバットノウハウやジョークレベルの解答しているみたいでなんか可哀想だからちゃんとしたレスをしてあげるよ。

まずパッケージというのをよくわかってないみたいだね。パッケージは普通このパッケージは○○関連の
仕事をする人と決めて作るので、別のパッケージに移動したいと思うことはあまりない。
たぶん一つのパッケージでいろんな役割をもたせているから移動したくなるんだと思う。
関数一つ、二つだけのパッケージがあってもいい。役割が分かれてるのなら細かく分割したほうがいい。

パッケージを使うのはプロジェクトが大きくなってきたとき、この関数はどこで定義されたのかなどを
ぱっと見てすぐに分かるようにするためでもあるので、>>888のようなやり方は良くない。
ちゃんとパッケージ名で修飾しよう。

>>889は、パッケージ名を抱合とか言ってるけど、単なるPerlでのオブジェクト指向(クラスを作る方法)の変則版。
それを書くぐらいならちゃんとしたオブジェクト指向用のコードを書いたほうがいい。せめてnewを作ること。
ちなみにそれやるぐらいならbless使わずに、my $object = "test1"; $object->www(@arg); これだけ十分。
そしてこのやり方は、パッケージ名が変わった場合には使えるけど、パッケージに含まれる関数を一つだけ
移動するときには役に立たない。

Exporterも今回の話とは関係ないものと考えたほうがいい。

で、結局どうするのが一番いいのかというと、この場合は素直にパッケージ名を変えたほうがいい。
これがJavaとかなら、リファクタリングツールを使って簡単に関数を移動できたりするんだが、
Perlはそうはいかない。だから多少冗長になっても関数名は長くしておいたほうがいい。
そうすれば検索で変更すべき箇所がすぐに見つかる。

変更する箇所が多くて一気に全部変えるのが怖いのなら、test::www()が呼ばれたら、test2::www()に転送するだけの
関数を作っておけばいい。そうすれば少しづつ変えられる。転送する前にwarnなんかで警告を表示するようにしておけば
すぐに気づくね。Carpとかを使えば、具体的にどこで呼び出されたかを知ることもできる。

あと&は基本的に使わない。test::www()で呼び出せるはず。パッケージ名の頭文字は大文字で

901 :nobodyさん:2011/08/25(木) 06:47:02.75 ID:???
長文の解説するのは勝手だが、
パッケージ => 名前空間を提供する為の機構、お約束、コマンド。
モジュール => あんたがパッケージと連呼して解説してる物。
用語を区別も出来てないのに、他人を貶めるコメントまで
入れて回答すべきじゃない。

ケアレスミスって言い訳はすんなよ?


902 :nobodyさん:2011/08/25(木) 07:00:49.48 ID:???
あ、本来の意味での「パッケージ」も当然使ってる。
モジュールの意味と混同使用してるのが問題。

903 :nobodyさん:2011/08/25(木) 10:23:30.15 ID:???
パッケージもモジュールも同義でいいじゃない
めんどくさい

904 :nobodyさん:2011/08/25(木) 15:21:43.68 ID:???
mod_perlが使えないレン鯖で、100種類くらいのモジュールを使いたい場合は、その場その場で必要なものだけrequireする方が良いと言う認識で正しいですか?
めんどくさいので、まとめてuseしたいところなんですが、パフォーマンス落ちますよね?
最近の事情教えてください。

905 :nobodyさん:2011/08/25(木) 15:57:23.29 ID:???
必要なものだけ use すれば?

906 :nobodyさん:2011/08/25(木) 16:13:21.34 ID:???
eval 'use ですか?
結局、何が必要になるのか判定するのがめんどくさいので…

907 :nobodyさん:2011/08/25(木) 16:25:32.51 ID:???
うーん
100種類ものモジュールを使わにゃならん規模のしろものを
mod_perlも使えずパフォーマンスを気にしながら運用しないといけないような
レン鯖で動かそうとしていること自体
どこか間違ってないかい?

908 :nobodyさん:2011/08/25(木) 16:38:29.83 ID:???
趣味でやってるんで、専鯖は高すぎるし、自鯖は管理が面倒なんです。
最近はuseするのが当たり前っぽいので、何か良い方法でもあるのかなと思ったのですが…。

909 :nobodyさん:2011/08/25(木) 17:27:58.47 ID:???
@aaa = ("a\r\n","b\r\n,","c\r\n");

print join('', map{ ??? },@aaa);

\r\nの改行がある配列を改行を削除して出力したいのですが、mapを使う場合どんな記述になりますか?

910 :nobodyさん:2011/08/25(木) 17:28:08.00 ID:???
つ VPS PaaS

911 :nobodyさん:2011/08/25(木) 21:07:27.57 ID:???
my @filtered = grep { s/\r\n// } @aaa;


912 :nobodyさん:2011/08/25(木) 21:29:35.33 ID:???
>>911
なんで grep?しかもそれだと @aaa に対して破壊的だよ

「末尾の」\r\n の削除、と勝手に解釈するとして、
map { my $s = $_; $s =~ s/\r\n\z//; $s } @aaa

Perl 5.14 なら
map { s/\r\n\z//r } @aaa
# http://www.effectiveperlprogramming.com/blog/659

913 :nobodyさん:2011/08/25(木) 23:20:16.46 ID:???
「grepだと必ず$_返すから便利!」って主張を見たなあw
printf "%s\n", join '', map{ ( /^(.*?)\r\n$/ms )[0] || $_ } @aaa;

どうしてもmapじゃなきゃだめなんかね?
printf "%s\n", join '', do{ local $/ = "\r\n" ; chomp @aaa ; @aaa} ;
printf "%s\n", join '', do{ local $/ = "\r\n" ; chomp ( my @tmp = @aaa ) ; @tmp} ;



914 :nobodyさん:2011/08/25(木) 23:43:57.45 ID:???
>>913
細かいことだけど最初のは "0\r\n" や "\r\n" に対して働かないよね
5.10 以上なら || じゃなくて // にすればいいけど

915 :nobodyさん:2011/08/25(木) 23:51:38.78 ID:???
map{ /^(.*?)\r\n$/ms ? $1 : $_ } @aaa;


916 :nobodyさん:2011/08/26(金) 15:28:06.85 ID:???
map /(.*(?=\r\n)|.*)/s, @aaa;

917 :909:2011/08/26(金) 16:10:21.89 ID:???
>>911-916

出来ました。
助かりましたありがとうございます。

918 :nobodyさん:2011/08/27(土) 01:57:22.73 ID:???
>>901
えと、結局言い返せるところはそこだけなの?
名称に文句つけてるだけだよね?


919 :nobodyさん:2011/08/27(土) 02:11:28.25 ID:???
>>901
モジュールは言い換えるとファイル。.pm のmはモジュールのm
> http://perldoc.jp/docs/perl/5.10.0/perlmod.pod
> すべての Perl のモジュールは .pm という拡張子を持っていて、

一つのモジュールの中にパッケージは複数入れられる。
AAA.pmの中に、全く別の名前BBBというパッケージを書くこともできる。

その場合、BBB:funcという風に呼び出しを行う。
つまり、BBBの部分はパッケージ名。モジュールではない。

perl -MAAA -e {} とやった場合のAAAはモジュール。だからM。
同じく同様の動きをするuse AAA。これもAAAはモジュール。

AAAというモジュールの中に、BBBというパッケージがあれば、
プログラムの中からはBBB:funcやBBB->newとして扱う。
だからこのBBBはモジュールとは違うもの。つまりパッケージ。
そもそもpackage BBBと宣言する。

>900の話はすべてパッケージで間違いない。

920 :nobodyさん:2011/08/27(土) 07:29:50.33 ID:???
斜め読んだが、まともに読む気にならん
>、>>888のようなやり方は良くない。
>ちゃんとパッケージ名で修飾しよう。
Foo::bar、Foo2::bar で全て呼べって?Exporterの存在全否定だぞ?

ま、せっかくperldoc.jpのURLを引っ張って来てんだから、
質問者さんは、そっちを読めばいいよ


921 :nobodyさん:2011/08/28(日) 12:52:48.81 ID:???
>>911は無名配列へコピーして条件を必ず真にすれば一応できるかな?

my @filtered = grep { s/\r\n$//; 1 } @{[@aaa]};

922 :nobodyさん:2011/08/30(火) 11:36:50.51 ID:???
UTF8の文字列の表示上の長さを一定に切り詰める良い方法ありませんか?
フォントなどに影響されるので完璧には難しいと思いますので、最悪半角1全角2程度の精度でもいいです。

923 :nobodyさん:2011/08/30(火) 12:30:21.87 ID:OHE35/fc
現在見ているページのURLを取得するにはどうしたらいいんですか?

ログイン画面からログインしたあとトップページに飛ばすのではなく
現在見ているページに飛ばすようにしたいので

924 :nobodyさん:2011/08/30(火) 13:03:34.30 ID:OHE35/fc
$ENV{'SCRIPT_FILENAME'} と$ENV{'QUERY_STRING'}を使って何とかできました

925 :nobodyさん:2011/08/30(火) 20:20:35.84 ID:???
返信の時に>などの引用部分をなくすにはどう変更すればよろしいでしょうか?
下の2行に#をつけても駄目みたいなんです

$res{sub} =~ s/^Re://g;
$res{sub} =~ s/\[\d+\]\s?//g;
$res{sub} = "Re:[$in{res}] $res{sub}";
$res{com} = "> $res{com}";
$res{com} =~ s/<br>/\n> /ig;

926 :925:2011/08/30(火) 21:14:27.63 ID:???
すいません、自己解決しました。



927 :925:2011/08/30(火) 21:32:02.91 ID:3jBRaX0s
してねーよw
なりすましすんなw

928 :nobodyさん:2011/08/30(火) 22:29:54.74 ID:???
らって解決したんらもん!

929 :nobodyさん:2011/08/30(火) 23:30:24.81 ID:???
>>925 みたいな不十分な内容の質問で答がもらえると思ったら大間違い、
という事実に自分で気づきましたので、>>925は無視してください。
のちほどあらためて質問しなおします。本当に申し訳ありませんでした。



930 :nobodyさん:2011/08/31(水) 00:16:09.54 ID:???
しつこいよ。キチガイ

931 :nobodyさん:2011/08/31(水) 00:47:43.29 ID:???
2つの整数の和を求めるdll(test.dll 正常動作確認済み)を作って、

#!/usr/bin/perl
BEGIN{ $| = 1; print "Content-type: text/html\n\n"; open(STDERR, ">&STDOUT"); }

use Win32::API;
print "Content-type: text/html\n\n";
my $test = Win32::API->new("test", "sum", "NN", "N");
$sum=$test->Call(1,2);
print $sum;




932 :nobodyさん:2011/08/31(水) 00:50:13.64 ID:???
こんな感じのソース書いて、実行してみると
Can't call method "Call" on an undefined value ...
って言われる>< なぜ?
ちなみに、test.dllはcgiと同じ階層に置いてて、環境はWin 7 64bit & ActivePerl 5.12.4
evalで囲っても肝心の値が取れないし、Dynaloderよく分からんし、詰んだorz
誰かお助けを〜

文字列制限に付き2回に分けて投稿

933 :nobodyさん:2011/08/31(水) 01:09:49.03 ID:???
ttp://hirokawa.netflowers.jp/entry/26247/ ←このサイトを参考に下記PHPコードを

$offset=268435456;
$radius=$offset / pi();
$xy = array(
"x"=>((round(round($offset + $radius * $x * pi()/180)+($deltaX << (21-$z))) - $offset) / $radius) * 180 / pi(),
"y"=>(pi() / 2 - 2 * atan(exp((round(round($offset - $radius * log((1 + sin($y * pi() / 180))/(1 - sin($y * pi() / 180))) / 2)+($deltaY << (21-$z))) - $offset) / $radius))) * 180 / pi()
);return $xy;

下記perlコードに置き換えてみたのですが、$deltaX、$deltaYにマイナスが入るとうまく動きません。
正の数字だときちんと計算されるのですが、何か間違いがありますでしょうか?

use Math::Trig qw( pi atan );
use Math::Round;
my $offset=268435456;
my $radius=$offset / pi();
my $x = 34.819533;
my $y = 137.732836;

#my $deltaX = 0;
#my $deltaY = -100;
#my $deltaX = -100;
#my $deltaY = 0;
my $deltaX = 0;
my $deltaY = 100;

my $xy = {
x => ((round(round($offset + $radius * $x * pi()/180)+($deltaX << (21-$z))) - $offset) / $radius) * 180 / pi(),
y => (pi() / 2 - 2 * atan(exp((round(round($offset - $radius * log((1 + sin($y * pi() / 180))/(1 - sin($y * pi() / 180))) / 2)+($deltaY << (21-$z))) - $offset) / $radius))) * 180 / pi(),
};return $xy;

934 :nobodyさん:2011/08/31(水) 01:20:00.50 ID:???
>>932
$testがundefinedなんだからnewに失敗してる、エラーチェックぐらいして

$GetTempPath = new Win32::API('kernel32', 'GetTempPath', 'NP', 'N');
if(not defined $GetTempPath) {
die "Can't import API GetTempPath: $!\n";
}

935 :nobodyさん:2011/08/31(水) 01:28:51.47 ID:???
>>934
なるほど。
試してみたら
%1 は有効な Win32 アプリケーションではありません。
って出た。これって有効なdllでは無いってことかな?

936 :nobodyさん:2011/08/31(水) 01:37:56.85 ID:???
>>933
$z はどっから出てきたんだよ
use strict; use warnings; つけろ

937 :nobodyさん:2011/08/31(水) 01:50:04.59 ID:???
>>933
負数をビットシフトした時の演算結果がPHPとPerlで違う

$deltaX << (21-$z)

($deltaX < 0 ? -1 : 1) * (abs($deltaX) << (21-$z))

他の箇所も同様に置換
これでとりあえずPHPと同じ結果にはなるんじゃないかな
検証はやってないんで自分でやってね

938 :933:2011/08/31(水) 09:44:14.97 ID:???
>>936
$zが抜けていましたすみません。

>>937
どう違うのかまで具体的に教えていただきありがとうございました。
昨日一日悩んだけど、同じ関数名で挙動が違うとか自分で考えていたら、しばらくハマってそうだ。

939 :nobodyさん:2011/08/31(水) 14:22:39.46 ID:???
>>931だけど、
http://msdn.microsoft.com/ja-jp/library/9yb4317s.aspx
ここみて64bit用のdll作成して、実行したらできた。

OSが64bitだと、dllも64bitじゃないと駄目なのね。
スレ汚しスマソ

940 :nobodyさん:2011/08/31(水) 14:39:25.77 ID:???
>>938
同じ演算なのに言語によって結果が違う(つまり言語によって仕様が違う)ことがたまにあるんだ
たとえば負数の剰余とかもPerlとPHPで違ったりする
Perl、Ruby、Python など:-5 % 3 → 1
PHP、C、JavaScript など:-5 % 3 → -2
あとPHPでは三項演算子 (? :) の優先順位がウンコってのも割と有名だったり
今後移植したコードがうまく動かなかった時はそのあたりを疑ってみるといいかも

941 :nobodyさん:2011/08/31(水) 14:58:51.30 ID:???
端数を切り上げるのに一番スマートな書き方を教えてください
切り捨ては int($hoge/$fuge) で良いのですが、
切り上げだと端数が出るかどうかの判定をして+1になるかと思います。

942 :938:2011/08/31(水) 15:00:29.56 ID:???
>>940

結構違いがあるんですね。
勉強になりましたありがとうございます。

ついでにもう一つ質問。
下記の下2行をスマートに一行で書けますか?(;を一つにまとめるという意味です)
書いたらどんな感じになりますか?
2行に分けるとか、もしかしてどんくさいことやってるのかとふと思いました。

@a = ('x','y','z');

$count = scalar(@a) - 5;
$count = 0 if( $count < 0 );

これだと2回計算してるので無駄ですよね?↓
きれいに書けるようになりたい。。
$count = scalar(@a)-5 < 0 ? 0 : scalar(@a)-5;

943 :nobodyさん:2011/08/31(水) 15:16:20.80 ID:???
>>942
(($count = scalar(@a) - 5) < 0) and $count = 0;
とかかなあ
でもたぶん演算速度的にはほとんどかわらないだろうし
わかりにくくなるから素直に2行にわけて書いておいた方がいいと思う

944 :nobodyさん:2011/08/31(水) 15:17:40.89 ID:???
別に無駄でもないと思うが、単に見やすくするなら、

1.
my $count = @a < 5 ? 0 : @a - 5;

2.
#my $count = (sort @a - 5, 0)[1];
use List::Util qw(max);
my $count = max(@a - 5, 0);

945 :nobodyさん:2011/08/31(水) 15:18:28.67 ID:???
また>>931だが
Cの方で、
/* 配列のポインタと個数を渡して配列の合計を返す */
int sum(int *a,int k) {
int value=0,i;
for(i=0;i<k;i++) {
value+=*(a+i);
}
return value;
}
とかした場合って、perl側でどうやって渡せばいい?

@ar=(1,2,3,4,5,6,7,8,9,10);
my $test=new Win32::API('test','sum','PN','N');
$test->Call(\@ar,10);
とかやってみたけどdllにはメチャクチャな値が渡される

946 :nobodyさん:2011/08/31(水) 15:23:33.01 ID:???
>>941
それでいいと思います
もしくは use POSIX; しておいて ceil() を使うとか

947 :942:2011/09/01(木) 10:13:06.91 ID:???
>>943-944

ありがとうございます。
2行でもそんなにおかしいコードではないんですね。

perlは色んな書き方できるのが長所であり短所なんで視認性がありつつ効率的なコード書きが出来たら
もっと楽しいんだろうな。

948 :nobodyさん:2011/09/02(金) 08:22:19.73 ID:???
>>946
ありがとうございます。

949 :nobodyさん:2011/09/02(金) 13:50:29.35 ID:???
会社の経理さんに頼まれて perl でアプリ作ってたんだけど、
数学の四捨五入と銀行の四捨五入って違うのね。
ちょっとずつずれてて焦ったwwwww

950 :nobodyさん:2011/09/02(金) 16:35:39.70 ID:???
>>949
どういう風に違うの?
後学のために教えてくんろ

951 :nobodyさん:2011/09/02(金) 20:41:21.54 ID:???
5未満→切り捨て
5超→切り上げ
ちょうど5→上の桁が偶数になる側へ丸める

こんなのあったな。

952 :nobodyさん:2011/09/02(金) 22:24:48.60 ID:???
>>949
浮動小数点の丸め誤差の事か?


953 :nobodyさん:2011/09/02(金) 22:37:19.01 ID:???
五捨五入

954 :nobodyさん:2011/09/02(金) 22:39:47.39 ID:???
銀行丸めで調べてみれ

955 :nobodyさん:2011/09/03(土) 00:24:06.87 ID:???
>>949
浮動小数点誤差に気をつけろ。
Perlでは避けられない。

956 :nobodyさん:2011/09/03(土) 11:29:31.33 ID:???
意外と丸めって深いよな
負数の丸め方とかもあるし

957 :nobodyさん:2011/09/05(月) 23:55:26.18 ID:???
最近のメールフォームは多機能で余分な機能が多すぎるので難しいです。
なので
1. バリデーションはJqueryで行う
2. CGIはpostで送られたデータを送信して送信完了ページへリダイレクトするだけの機能
このような非常にシンプルなCGIはないでしょうか。
お願いします。

958 :nobodyさん:2011/09/06(火) 00:10:12.54 ID:???
誘導されてきたことぐらいは書け。
じゃなきゃマルチポストは帰れ!で済まされちゃうよ。

959 :nobodyさん:2011/09/06(火) 01:08:45.34 ID:???
<html>
<body>
<a href=***><strong>おやつ</strong></a>
<a href=***>ぽてち</a>
<a href=***>がむ</a>
<a href=***>ばなな</a>
</body>
</html>

上記があった場合、scraperで下記のような結果にしたい場合、
どのように書けばよいでしょうか?
リファレンスの階層は多少変わっても構いません。

my $scraper = scraper{
process '/html/body', 'aaa[]' => scraper{
process 'a', ???;
};
};

#結果
$scraper->{aaa}->{item} = おやつ
$scraper->{aaa}->[0] = ぽてち
$scraper->{aaa}->[1] = がむ
$scraper->{aaa}->[2] = ばなな


960 :nobodyさん:2011/09/07(水) 00:03:47.91 ID:???
$scraper->{aaa}->{item} = 'おやつ' ってことは
$scraper->{aaa} は {item => 'おやつ'} という無名ハッシュへのリファレンス。

一方 $scraper->{aaa}->[0] = 'ぽてち' …ってことは
$scraper->{aaa} は ['ぽてち', 'がむ', 'ばなな'] という無名配列へのリファレンス。

これを両方同時に成り立たせるのは無理だんべ。

961 :nobodyさん:2011/09/07(水) 14:55:18.84 ID:???
書き込むファイルがANSI形式の場合でフォームからunicode文字を送信して
たば書き込むだけの場合、unicode.pmとか使わなくても特に問題ないんでしょうか?

unicode.pmが必要なのって書き込むファイルがunicode形式の場合なんでしょうか?

962 :959:2011/09/07(水) 17:53:37.10 ID:???
>>960

そうですか。
違う方法を考えます。
ありがとうございます。

963 :nobodyさん:2011/09/07(水) 18:19:43.82 ID:???
>>961
お前の環境はテストスクリプトを走らせると爆発でもするのか?

#!/usr/bin/perl -w
use strict; use CGI::Carp 'fatalsToBrowser'; use CGI ':all';
my $charset = 'UTF-8';
my $log = '/path/to/test.log';

charset($charset);
my $cgi = CGI->new;
if (my $str = $cgi->param('str')) {
  open my $fh, '>>', $log or die $!;
  print $fh '--- ' . localtime() . " ---\n$str\n";
  close $fh;
}

open my $fh, '<', $log or die $!;
print(
  header(),
  start_html(-Title => $log, -lang => 'ja', -encoding => $charset),
    startform(),
      div(textarea('str'), submit('write')),
      hr(),
      div(join br(), map escapeHTML($_), <$fh>),
    endform(),
  end_html(),
);

964 :nobodyさん:2011/09/07(水) 18:37:59.56 ID:???
>>962
たとえば
$scraper->{aaa}->{item} = "おやつ"
$scraper->{aaa}->{list}->[0] = "ぽてち"
$scraper->{aaa}->{list}->[1] = "がむ"
$scraper->{aaa}->{list}->[2] = "ばなな"
みたいな形だったら作れると思うが

$scraper->{aaa} = {item => "おやつ", list => ["ぽてち", "がむ", "ばなな"]}
ってことね

965 :nobodyさん:2011/09/07(水) 19:56:25.50 ID:???
質問があります。
PerlとSendmailを使ってFromの内容を送る場合なんですが、ググっても肝心なFormにあるinputやtextareaのデータをどうやって変数?に送っているのかを解説している日本語サイトが見つかりません。
なのでここで質問させて頂きたいのですが。
例えば、VBやC#なら関数名のあとに引数で値を渡しますがPerlを使ってFormの各種コントロールからどやって値を渡しているのかメカニズムがとてもわかりにくく感じました。
こんなお馬鹿な私に簡単に説明して頂けないでしょうか。

966 :nobodyさん:2011/09/07(水) 20:00:47.43 ID:???
試しに書いてみたが…。

my $scraper = scraper {
process 'body', 'aaa[]' => scraper {
process 'a > strong', item => 'TEXT';
process '/*/a/text()', 'list[]' => 'TEXT';
};
}->scrape($content);

言うまでもないけどHTMLの構造に依存なので。
最後だけXPath式なのは、
A要素の子要素にSTRONGがない構造をCSS式でどう書くかわからなかったんで。
誰か教えて。

967 :966:2011/09/07(水) 20:06:51.68 ID:???
早速だけど >>966 これちょっと違うかもな…。
これだと $scraper->{aaa}->[0]->{item} = "おやつ" とかになっちゃうね。
そもそもなんで'aaa'じゃなくて'aaa[]'なんだろう?

968 :nobodyさん:2011/09/07(水) 20:32:11.48 ID:???
単にベタなフラグ立ての文字列だよ。

>} elsif ($key =~ s!\[\]$!!) {
>$stash->{$key} = [ map __get_value($_, $val, $uri), @nodes ];


969 :nobodyさん:2011/09/07(水) 20:54:22.14 ID:???
>>965
「cgi form クエリ」とかで探してみたらすぐ見つかったがな。
ttp://www.web-liberty.net/improve/perl/bbs_decode.html
とか。
フォームから送られたデータ(文字列)は、
GETでは環境変数QUERY_STRINGから、POSTでは標準入力から得られる。
なお実際に処理する時はCGIモジュールなどを使うべし。

970 :nobodyさん:2011/09/07(水) 21:23:28.30 ID:???
>>969
素早い回答ありがとうございます。
クエリでググらないといけなかったんですね、すいません。
一応読んでみて私なりに理解することができました。
FormのデータがSTDINにFormの各種コントロールのname属性=入力された値&name属性=入力された値・・・と全て格納されるので、まず全ての文字列を変数に格納して&と=で分割して変数に格納していくんですね。
やっと理解できました、ありがとうございます。

971 :nobodyさん:2011/09/07(水) 21:35:41.60 ID:???
ファイルロックするとき、ファイルオープンする直前にロックしたほうがいいのか、
それともスクリプトの序盤でロックしてしまうほうが安全か。。。迷う


972 :nobodyさん:2011/09/07(水) 22:18:39.09 ID:???
>>970
最初「cgi perl form」とかでググって、
ヒットしたページをいくつか見てみて「クエリ」というキーワードを見つけて、
CGIで渡される文字列を調べるんだからperlは関係ないな、と
「cgi form クエリ」でググり直して、
みたいに新たに検索語も探しつつ何度か調べ直すのは結構有効。
以上ご参考まで。

973 :nobodyさん:2011/09/08(木) 01:52:54.27 ID:lOPFQGVz
>>971
ファイルオープンの直前でおk

読み込みだけならロックはいらない

974 :nobodyさん:2011/09/08(木) 09:09:34.08 ID:???
オープンしないとファイルハンドルなくね?
ロック用のファイルでも作るの?

975 :nobodyさん:2011/09/08(木) 09:34:08.06 ID:???
読み込みもロック必要では?
読み込み中にファイルが更新される可能性もあるわけだし。


976 :nobodyさん:2011/09/08(木) 11:25:54.19 ID:???
ふと思ったんだけど、ロックファイルを用意するとか、flock を使用するとかの別のところ、
ファイルシステム上でデッドロックが起きてしまう可能性ってどれぐらい高いんだろう?

flock だったり、ロックファイルを作ってのロックだったりが成功しても、
読み書きしようとするのにロックが掛かって処理できなかったらどうしようも出来ないよね?


そもそも、そこまでの問題は一般ユーザーではどうしようも出来ないから、特別考慮しなくてもいいのかな?

977 :nobodyさん:2011/09/08(木) 11:48:49.18 ID:???
デッドロックが起きるようなファイルシステムがあったら
それはOSのバグかもしくはストレージの不具合か
いずれにしても致命的なエラーなので
そのまま使い続けられるような状態じゃないので

そんなことがもし起きるようなら
プログラム(アプリケーション)でなんとかするんじゃなく
OSを正常なものに変えるなりストレージを修理・交換するなりの
根本的な手当が必要ってことだろう

978 :nobodyさん:2011/09/08(木) 14:24:14.74 ID:???
>>972
どうもです。

WebProg全般に言えると思うんですけど、なぜC#やJAVAみたいにFormの各種コントロールのname属性から直接関数を指定して引数に代入できないでしょうね。
内部でどういう処理をしているのかがとてもわかりづらいです。
いちいち値を文字列関数で処理してから変数に格納するとか合理的とは言えないと思うんですが。


979 :nobodyさん:2011/09/08(木) 16:16:03.96 ID:???
ブラウザはフォームの入力をHTTPの仕様に沿って foo=1&bar=2 のように変換してサーバーに送信。
サーバーはそれをperlに渡す。
perlは受け取ったデータを処理する。

実際にはもっと複雑だが、ともかくデータは色々なところを通ってようやくperlまで辿り着く。
リレーのバトンが重かったり妙な形だったり何本もあったりしたら大変だよねえ。

980 :nobodyさん:2011/09/08(木) 17:57:56.87 ID:???
>>978
ブラウザ側とサーバ側で、HTTPプロトコルを使って値をやりとりする必要があるから、
全部ひとつの文字列にまとめて固めて送ってくる訳で。

Perlでの実処理ではデータを自分でいじらずにCGIモジュールあたりを使いましょう。
> いちいち値を文字列関数で処理してから変数に格納するとか
そんなことをしなくても、
> Formの各種コントロールのname属性から直接関数を指定して引数に代入
みたいな前処理をやってくれます。↑これは若干意味不明だけど

981 :nobodyさん:2011/09/08(木) 20:32:19.09 ID:???
>>968
意味不明。誤爆?

982 :nobodyさん:2011/09/08(木) 20:47:23.53 ID:???
ttp://cpansearch.perl.org/src/MIYAGAWA/Web-Scraper-0.34/lib/Web/Scraper.pm
の中の行だね。
「'[]' が付いてる文字列を配列へのリファレンスとするフラグにしている」
こんなのはソースを見なくても当たり前。

尤も、俺は >>967
>そもそもなんで'aaa'じゃなくて'aaa[]'なんだろう?
が何を意図した「?」なのかが理解出来ん(上記の理由)から、
968が的を射てるのか外してるのかすら分らん。


983 :nobodyさん:2011/09/08(木) 21:08:25.10 ID:???
>>982
> 尤も、俺は >>967
> >そもそもなんで'aaa'じゃなくて'aaa[]'なんだろう?
> が何を意図した「?」なのかが理解出来ん(上記の理由)から、

上記の理由ってどれだす?
> そもそもなんで'aaa'じゃなくて'aaa[]'なんだろう?
というのは元々の >>959
> process '/html/body', 'aaa[]' => scraper{
がなんの目的で配列へのリファレンスになってるんだろう、という意図ですよ。
> #結果
> $scraper->{aaa}->{item} = おやつ
> $scraper->{aaa}->[0] = ぽてち
> $scraper->{aaa}->[1] = がむ
> $scraper->{aaa}->[2] = ばなな
を見ると、単に 959 はハッシュへのリファレンスと配列へのリファレンスの意味が
よくわかっていなかった(区別がついていなかった)ってだけのことなんですかね。

984 :nobodyさん:2011/09/08(木) 21:17:04.26 ID:???
>を見ると、単に 959 はハッシュへのリファレンスと配列へのリファレンスの意味が
>よくわかっていなかった(区別がついていなかった)ってだけのことなんですかね。
それだけの事


985 :nobodyさん:2011/09/09(金) 02:11:34.55 ID:???
次スレ立てる人は >>2 の確認と修正よろしく。

986 :nobodyさん:2011/09/09(金) 06:09:17.24 ID:???
950ですが、スレ立てできない専ブラもどきで書き込みしてるんで、
ブラウザのレベルが足りなくてスレ立てられねっす。すんませんが誰かかわりにお願いします。
一応>>1>>2の確認と修正したテキスト置いときます。
1 の内容:
Perlのコーディングで困ってる人のスレです。

【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
「コマンドの意味がわかんない」とかはマニュアル見ましょう。
回答者さんは何でも屋じゃありません。

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

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

お勧めサイトは >>2 以降

前スレ http://hibari.2ch.net/test/read.cgi/php/1295170172/

987 :nobodyさん:2011/09/09(金) 06:10:40.18 ID:???
2の内容:
[プログラミング自体の経験が無い奴はまずココを読め]
Perlプログラミング講座: ttp://www.site-cooler.com/kwl/perl/

[本]
リャマ: ttp://www.oreilly.co.jp/books/4873111269/
駱駝: ttp://www.oreilly.co.jp/books/4873110963/
Effective Perl: ttp://ascii.asciimw.jp/books/books/detail/4-7561-3057-7.shtml
クックブック: ttp://www.oreilly.co.jp/books/4873112028/
Perl ベストプラクティス: ttp://www.oreilly.co.jp/books/4873113008/
Perl Hacks: ttp://www.oreilly.co.jp/books/9784873113142/

[オンラインマニュアル]
最新のドキュメント: ttp://perldoc.perl.org/
perldoc きまぐれ訳: ttp://fleur.hio.jp/perldoc/
perldoc.jp: ttp://perldoc.jp/

[モジュール]
CPAN: ttp://search.cpan.org/
河馬屋二千年堂: ttp://homepage3.nifty.com/hippo2000/

[テクニック]
Perlメモ: ttp://www.din.or.jp/~ohzaki/perl.htm
Perlのページ: ttp://homepage1.nifty.com/nomenclator/perl/
Perlの小技: ttp://homepage3.nifty.com/hippo2000/perltips/

[Perl5.8Unicodeメモ]
ttp://www.namazu.org/~tsuchiya/perl/perl-5.8.html
ttp://www.lr.pi.titech.ac.jp/~abekawa/perl/perl_unicode.html

988 :nobodyさん:2011/09/09(金) 13:00:13.53 ID:YZzHj5h/
すいません、少々分からない事があるので教えていただきたいのですが

use lib qw(/cgi-bin/mycpan/);
use URI::Escape;
use SHA::PurePerl qw(hmac_sha256_base64);

なぜかこれが500エラー出て通りません
Escape.pmは/cgi-bin/mycpan/URI/に
PurePerl.pmは/cgi-bin/mycpan/SHA/に入っており、実行ファイル(test.cgi)は/にあります。

/ test.cgi
└cgi-bin−mycpan┬SHA−Escape.pm
            └URI−PurePerl.pm という感じになっています。
パーミッションは全て705です。

これだけでエラーの原因が分かる方いませんか?

989 :nobodyさん:2011/09/09(金) 13:07:27.26 ID:???
use libは絶対パスで正しいのか

あとだからログを見ろよ

990 :nobodyさん:2011/09/09(金) 13:09:29.33 ID:YZzHj5h/
>>989
いや、レンタルサーバーなので鯖のログ見れないんですよ

・・・あれ、use libって絶対パスでしか使用できないんでしょうか?

991 :nobodyさん:2011/09/09(金) 13:35:32.53 ID:???
URLのルート("/")とサーバのファイルシステム上のルートは別物だよ。
ごっちゃにしてないかい?

992 :nobodyさん:2011/09/09(金) 13:54:14.52 ID:YZzHj5h/
頭に/をつけたらだめだったんですね・・・よくわかりました
失礼しました

993 :nobodyさん:2011/09/09(金) 14:22:45.29 ID:???
>>986

4: WEBサーバーのエラーログにはこんな行がありました (URL や PATH はそのまま乗せないこと)


994 :nobodyさん:2011/09/09(金) 15:17:47.68 ID:???
>>988
http://perldoc.jp/docs/perl/5.10.1/perlfaq9.pod#How32can32I32get32better32error32messages32from32a32CGI32program63

まぁ本当に
> └cgi-bin−mycpan┬SHA−Escape.pm
>             └URI−PurePerl.pm
と入れているのならエラーメッセージを確認するまでもないが。

995 :nobodyさん:2011/09/09(金) 18:10:37.48 ID:???
>>986
立てます

996 :nobodyさん:2011/09/09(金) 18:12:38.60 ID:???
Perlコーディング初心者質問スレ Part 63
http://hibari.2ch.net/test/read.cgi/php/1315559509/

997 :nobodyさん:2011/09/09(金) 19:36:25.86 ID:???
>>990
> いや、レンタルサーバーなので鯖のログ見れないんですよ

そんなレン鯖はやめなさい。
ちゃんとログの見られる鯖に替えた方がよろし。

>>996
乙っす。

998 :nobodyさん:2011/09/10(土) 16:42:30.16 ID:???


999 :nobodyさん:2011/09/10(土) 19:52:43.01 ID:???


1000 :nobodyさん:2011/09/10(土) 20:06:47.98 ID:???


1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

305 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50


read.cgi ver 05.05 2022/08/31 Walang Kapalit ★
FOX ★