[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 04/04 01:09 / Filesize : 256 KB / Number-of Response : 807
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Perlについての質問箱 41箱目



1 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 03:03:00 ]
"The duct tape of the Internet" こと、Perl についての質問箱です。
"There's more than one way to do it" ということで、
Perl の奥深さについて皆で語り合い、追求してまいりましょう。

CGI についての質問は板違いです。WEB プログラミング板でどうぞ。
CGI と Perlの区別がつかない人も WEB プログラミング板に行ってください。
(WEB プログラミング板: pc11.2ch.net/php/)

CGI の質問は答えが Perl と全然関係ない話に帰着する場合が
多かったりするので WEB プログラミング板に行って聞いたほうが得ですよ。
このスレでは(CGI 以外の)純粋にPerlのみに関係する質問を取り扱っていこうと思います。
スレ違いの質問にはスルーか、速やかな誘導をお願いします。

www.perl.org/get.html
● 2009/08/07 現在の最新版: 5.10.0

▼ 前スレ
Perlについての質問箱 40箱目
pc12.2ch.net/test/read.cgi/tech/1243631674/

リンク集は >>2-3
Perl 日本語処理の基礎の基礎 >>4
過去スレは >>5-6 あたり

784 名前:デフォルトの名無しさん [2009/10/09(金) 08:52:12 ]
>>782
普通に代入じゃだめなのん?

785 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 09:14:52 ]
>>774
そういうシステムならcryptもsha512対応してると思うので
そっち使えばいいと思う。同じライブラリ呼ぶので確実な
筈だよ。

print crypt('password', '$6$salt');

786 名前:デフォルトの名無しさん mailto:sage [2009/10/09(金) 14:08:33 ]
>>774
車道クラックか?

>>777
解決したならそれを書くのが筋。HTTPレスポンスのことならHTTPヘッダの
Content-Length: 行で取れるよな。

>>782
スカラ型の内部値を変えたいのか?質問の意図がよくわからん。
数値にしたけりゃ
$foo += 0;
文字列にしたけりゃ
$foo .= '';
内部的にリファレンスとか整数型にしたいとかだったら簡単な方法は知らん。

787 名前:774 mailto:sage [2009/10/09(金) 17:07:06 ]
>>785
普通にcryptで出来るんですね・・・ありがとうございました。

>>781
>>786
趣味で自宅サーバーをやっているのですが
Perlからsystem関数でuseraddを使うためです。
誤解を招く質問をしてしまい申し訳ありません。

788 名前:777 mailto:sage [2009/10/10(土) 03:46:06 ]
>786
おっしゃる通り、HTTPレスポンスから取得出来ました。
Perlの質問ではありませんでした…

789 名前:デフォルトの名無しさん mailto:sage [2009/10/11(日) 01:53:02 ]
自己解決しましたっつーのは自分が苦労して答えを導き出せたから
掲示板に答えが書かれてしまうと自分の苦労の価値が下がってしまうから
それを避けるための自慰行為。
「Webリソース」とか書くようなバ力は788なんかじゃなくてwcとかで解決したつもりだろ。


790 名前:デフォルトの名無しさん [2009/10/11(日) 03:25:57 ]
>>787
お陰さまで私も勉強になりました。
今時のシステムはパスワード暗号化にsha512使ってるなんて
知りませんでしたから。
うちのシステムは何を使ってるんだろ?

791 名前:デフォルトの名無しさん mailto:sage [2009/10/11(日) 20:13:01 ]
gzファイルをgzopenを使って読み込みこむことはできたんですが
日本語が文字化けしてしまいます
普通のtxtファイルなどは日本語でも文字化けしません
どうしたらいいんでしょうか

792 名前:デフォルトの名無しさん mailto:sage [2009/10/11(日) 20:20:33 ]
>>791
使うな。



793 名前:デフォルトの名無しさん mailto:sage [2009/10/11(日) 20:25:11 ]
gzopenを使うなってことですか?

794 名前:デフォルトの名無しさん mailto:sage [2009/10/11(日) 20:54:51 ]
perlを使うな

795 名前:デフォルトの名無しさん mailto:sage [2009/10/11(日) 21:03:41 ]
perlだとできないんですか?
それじゃphpでやってみます・・

796 名前:デフォルトの名無しさん [2009/10/11(日) 23:57:04 ]
連想配列について質問です。
たとえばkeysでとりだしたハッシュの順序は一定ではないそうですが、
何回もperl *.plで実行しても同じ順序でキーが取り出されます。
ハッシュの順序はOS依存なんですか?それともperlのバージョン依存なんですか?
同じ環境のもとで同じプログラムにした場合はkeysでとりだされるキーも同じ順序になるのですか?

797 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 00:12:59 ]
ハッシュ依存じゃないの?

798 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 00:17:12 ]
>一定ではないそうですが

これは誰から聞いたの?

799 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 00:35:34 ]
別に乱数は使ってないよ

800 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 00:51:45 ]
一定ではないというのは環境によるんだろうが
ハッシュに順序の保障を求めるべきではないとは思う
順序の保障が欲しければリストを利用/併用すべきだろうな

801 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 01:24:16 ]
perlのバージョン依存。

perl5.10.0のperldoc -f keysでは、
===========
超訳。
perl5.8.1までは、セキュリティー上の理由から、
keysはプログラムを実行する度に違う順序で取り出されてた。
(順番自体は見た目上ランダムに決定されてる。ただし、
同一プロセス内で、hashに変更が無いならeach, valuesでも
keysと同じ順である事は保証される。)
===========
暗に「より新しいperlではkeysはhashに変更が無いなら
プログラムを複数回実行しても同じ順に取り出される。」
と言ってはいるが、それをkeysのperldocでは明文化は
してない。
ここまで調べて面倒になった。

俺も>>800氏と同じ見解だし。


802 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 01:32:14 ]
うそっ
わざわざランダムにしてたんだ

for (keys
っていう処理はするけど、大抵はsortとセットだから気にしたこともなかった



803 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 02:52:49 ]
>>801
逆だ。5.8.0までは特定の順序で取り出されていたのを、
5.8.1以降で変わるようにしたんだ。

perldoc.perl.org/functions/keys.html
> Since Perl 5.8.1 the ordering is different even between different runs of Perl
> for security reasons (see "Algorithmic Complexity Attacks" in perlsec).

perldoc.perl.org/perlsec.html#Algorithmic-Complexity-Attacks
perldoc.jp/docs/perl/5.10.0/perlsec.pod

804 名前:デフォルトの名無しさん mailto:sage [2009/10/12(月) 03:59:09 ]
セキュリティが理由なら、止めてしまう訳ないしな

805 名前:デフォルトの名無しさん mailto:sage [2009/10/13(火) 05:43:17 ]
質問です。サブルーチンの途中でreturnせずに戻り値を返すことは可能でしょうか?

長文処理の自作モジュールに引数としてファイル名を渡し、
サブルーチン内でopen、while(各行処理)、closeまで行なっています。

行数が数千行になるので各行で処理を終えたい(@本文のようなリストは作りたくない)のです。
現在サブルーチン内で各行をprintしていますが、どうもスマートではないと思い質問しました。

いまの状態を簡易に書くとこんな感じです。

(呼び出し側)
$foo->get('file')

(package foo内のサブルーチン)
sub get {
my $self = shift;
my $file = shift;
open my $in, "< $file" or die($!);
while (<$in>) {
#ここで各行を処理してprint
}
close $in;
return 1;
}

素直に呼び出し側でファイルを開いて行単位でサブルーチンを呼ぶべきかとも思うのですが、
それもなんかスマートでない気がしてモヤモヤしています。よろしければ方向性だけでも示唆ください。

806 名前:デフォルトの名無しさん mailto:sage [2009/10/13(火) 06:03:32 ]
コルーチン






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<256KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef