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

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

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

1 :デフォルトの名無しさん:04/07/27 09:46
"The duct tape of the Internet"こと、
Perlについての質問箱です
"There's more than one way to do it"ということで
ぱぁるの奥深さについて皆で語り合い、追求してまいりましょう。

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

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

姉妹スレッド
http://pc5.2ch.net/test/read.cgi/php/1089779036/

過去ログは>>2-1001あたり

952 :ぬるぽ ◆GmgU93SCyE :04/09/07 14:19
名前の「GmgU93SCyE」は、どういうプログラム文で決めたものでつか?

953 :デフォルトの名無しさん:04/09/07 16:20
次の質問をどうぞ

954 :デフォルトの名無しさん:04/09/07 16:32
>>952
おそらく、DES暗号あたりかな

955 :デフォルトの名無しさん:04/09/07 16:53
>>952
「2ch」「トリップ」あたりでぐぐればいろいろでてくるよ。
perlならこのへんかな?

ttp://multix.jp/html/memo/030525.html#0002

956 :デフォルトの名無しさん:04/09/07 16:54
>>952
DESてのが元々あり
平分←(鍵)→暗号文
と行き来できるもので(以下略
(XOR演算とかbitのローテーションとか)
Cryptは最初に固定の平分を暗号文にし、
その暗号文を繰り返し(以下略
(salt、patternとか)
トリップはそのcryptを利用しており
キーの2,3文字目をsaltと固定し、cryptの戻り値の末尾10文字を(以下略
($trip = substr(crypt($key, (substr($key."H.", 1, 2))), -10);とか)

適当、半分くらいは当たってるはずだ。ガッはしてあげません。

957 :ぬるぽ ◆GmgU93SCyE :04/09/07 17:11
ありがと
PHPでオナジことできればいいのになぁ・・・

958 :デフォルトの名無しさん:04/09/07 17:20
できるだろ・・・。

959 :ぬるぽ ◆GmgU93SCyE :04/09/07 17:39
2chとまったくオナジ変換ね

960 :デフォルトの名無しさん:04/09/07 17:45
>>959
スレタイ読め
もしくはphp cryptで検索くらいしろ。

961 :デフォルトの名無しさん:04/09/07 18:52
質問です。
perlの処理で、”Enterキーを押す”っていう操作は
perlでは、どう記述するのでしょうか?
ご存知の方是非教えて頂きたいのですが?


962 :デフォルトの名無しさん:04/09/07 19:01


$key = <STDIN>;
if($key eq "\r\n" or $key eq "\n" or $key eq "\r"){print 'Enterキター';}



963 :デフォルトの名無しさん:04/09/07 19:07
print "\n"
とか


964 :デフォルトの名無しさん:04/09/07 19:11
>>961
EnterキーとReturnキーは区別するの?

965 :デフォルトの名無しさん:04/09/07 19:39
961です。
>>962さん
ありがとうございます!
この処理で2日間悩んでました。
助かりました。
ちなみに、>>963の改行はやったんですが、うまくいかなくて・・・

966 :937:04/09/07 20:46
スレ汚しすいません。
昨日上手く逝ったはずのスクリプトですが、実際動かすとやっぱダメでした。

http://www.perldoc.com/perl5.8.0/lib/LWP/UserAgent.html
によると$ua->post($url, \%formref, Header => Value,...);とあり
>>951さんの言う通りLWP::UserAgentのpostはどっちも食えるようです。

んで、分かりにくかったので、ハッシュに代入、ハッシュのリファレンスを入れました。
コレでも駄目だったんですが、>>946の郵便局のURLと郵便局のフォームのペアを入れ
ると上手く逝きます。じゃあ、CGIが駄目なのかと思い、Etherealでパケットをみると
同じパケットを送っています。元は、図書館のCGIから論文を探してくるスクリプトです。
わけわからんです。

↓スクリプト

967 :937:04/09/07 20:49
#!/usr/bin/perl
use LWP 5.64;
use URI;
use encoding 'utf8';
binmode(STDERR, ':raw :encoding(utf8)');
use Encode;

Tosho("issncode1");
Tosho("issncode2");
sub Tosho {
%form = (
db => "all",
wa => "w",
yo => "y",
lib_cd => "00",
isbn_issn => $_[0],
search_type => "Detail",
);
print $_[0];#変数も渡っていて
print $form{isbn_issn};#ちゃんとハッシュにも入っている
print "\n\n";
my $browser = LWP::UserAgent -> new;
my $url = URI -> new('http://www.lib.ac.jp/Scripts/WebOpac.dll/Search');
my $response = $browser->post( $url,\%form);
my $response = decode('shiftjis',$response->content);
print $response;#なのにresponseが同じ・・
print "\n";
}

968 :デフォルトの名無しさん:04/09/07 21:36
情けない質問で申し訳ないですが…。
不特定の変数名などに「なんたらかんたら」とか
「ほにゃらら」みたいな感じで'foo'と'hoge'が使われますよね?
あれの意味とか起源って、なんですか?
hogeは、日本限定とか?知ってる方、教えて下さい。

969 :デフォルトの名無しさん:04/09/07 21:44
>>968
http://kmaebashi.com/programmer/hoge.html

970 :968:04/09/07 22:29
>>969
大変勉強になりました。ありがとうございます。

上記HPでは、否定されてますが、fooは「ほげ」の英語版って
ことで大雑把にはokですか?

971 :デフォルトの名無しさん:04/09/07 23:06
>>970
まあ ok かと。
http://www.ietf.org/rfc/rfc3092.txt

972 :デフォルトの名無しさん:04/09/07 23:17
>>967

「\」を「\」に置換した上で
URLを差し替えて試してみたら正常に動きましたけど。
(Redhat上のPerl5.8.0)

そこ以外のどこかがおかしいんじゃないの


973 :デフォルトの名無しさん:04/09/08 00:17
>>959
DES はアルゴリズムが公開されているので、
どの言語でも実装できますよ。

--
次スレよろです

974 :デフォルトの名無しさん:04/09/08 01:33
クソわがままな話ですが任意の特定のスコープ内だけブールの定義を変える方法存在しますか?
たとえば負の数値は全て偽、みたいな?

こーゆーのがあると記述がサッパリして見やすいなとか思っただけなんで、
ないんならそれでおkです。

975 :デフォルトの名無しさん:04/09/08 01:53
>>974
演算子のオーバーライド

976 :デフォルトの名無しさん:04/09/08 03:35
976

977 :デフォルトの名無しさん:04/09/08 04:29
>>975 arigeter


978 :デフォルトの名無しさん:04/09/08 06:09
>>966
>同じパケットを送っています
つーのはリクエストが同じってこと?
同じリクエストならこの場合は同じレスポンスが返るだろうけど
リクエストが同じなのかレスポンスが同じなのかはっきりしてちょんまげ

あとここではバックスラッシュを \ で書いても無問題だと思うよ

979 :デフォルトの名無しさん:04/09/08 09:00
>>977
arigatorだろ。正しい英語を使いませう

980 :デフォルトの名無しさん:04/09/08 09:04
それを言うならalligator(自己レスorz)

981 :デフォルトの名無しさん:04/09/08 14:15
お、次スレ
Perlについての質問箱 12箱目
http://pc5.2ch.net/test/read.cgi/tech/1094579428/

おつんつん

982 :937:04/09/08 22:16
次スレたってますが、コソーリ原因分かりました。POSTのrequestに日本語入っている場合のため
のエスケープを助けるサブルーチンの配列のmy忘れでした。
レスくれた皆さん、ありがとうございました。なんかのために貼っておきます。
sub URI::query_form {
my $self = shift;
my $old = $self->query;
if (@_) {
# Try to set query string
my @query;
while (my($key,$vals) = splice(@_, 0, 2)) {
$key = '' unless defined $key;
$key =〜 s/([;\/?:@&=+,\$\[\]%])/$URI::Escape::escapes{$1}/g;
$key =〜 s/ /+/g;
$vals = [ref($vals) ? @$vals : $vals];
for my $val (@$vals) {
$val = '' unless defined $val;
#################### ここから日本語化パッチ部分 ####################
my @work = unpack('C*', $val);
$val = '';



983 :937:04/09/08 22:16
foreach my $c (@work) {
if ((($c >= 0x30) && ($c <= 0x39)) || # 数値はそのまま
(($c >= 0x41) && ($c <= 0x5A)) || # アルファベット(大文字)もそのまま
(($c >= 0x61) && ($c <= 0x7A))) { # アルファベット(小文字)もそのまま
$val .= chr($c);
} elsif ($c == 0x20) { # 空白は'+'に
$val .= '+';
} else { # それ以外は%XX形式に変換する。
$val .= sprintf("%%%02X", $c);
}
}
#################### 日本語化パッチ部分ここまで ####################
#この行は削除 $val =〜 s/([;\/?:@&=+,\$\[\]%])/$URI::Escape::escapes{$1}/g;
# この行は削除 $val =〜 s/ /+/g;
push(@query, "$key=$val");
}
}
$self->query(join('&', @query));
}
return if !defined($old) || !length($old) || !defined(wantarray);
return unless $old =〜 /=/; # not a form
map { s/\+/ /g; uri_unescape($_) }
map { /=/ ? split(/=/, $_, 2) : ($_ => '')} split(/&/, $old);
}


984 :937:04/09/08 22:18
6行目のmyを忘れただけなのに、物凄い苦労しました。
もとはo'reillyの本にあった、サブルーチンです。日本語POSTには必須だと思われ。



985 :デフォルトの名無しさん:04/09/08 22:44
どうしたら、perlで日本語使えるの?


986 :デフォルトの名無しさん:04/09/08 23:02
>>984
use strict;してないの?


987 :デフォルトの名無しさん:04/09/09 00:06
>>974
無理。if(is_positive($number)){ ... } とでもするしかないな。

特定のスコープだけリテラルの意味を変えることなら出来る(perldoc overload)が、
あくまでもリテラルの意味を変えるだけだからな。

988 :デフォルトの名無しさん:04/09/09 06:04
>>937
君はもう質問するのやめなさい


989 :デフォルトの名無しさん:04/09/09 08:11
埋めていこう!

990 :デフォルトの名無しさん:04/09/09 08:45
なんかよくわからんけど
「日本語化パッチ部分ここまで」の直後の
削除された正規表現を工夫すると、パッチ全体が
いらなくなるように見えるのは俺だけだろうか。

あと、今回の教訓としては、泥縄式にデバッグするときは、
「切り分け」が重要。(こっからここまでは正常、とか確認して
怪しいエリアを絞ってく) なんだけど、そこがうまくいかなかった
という感じだね。

ふつうだったら >>967 が絞り込まれた結果のはずだとみんな思うだろうし。



991 :デフォルトの名無しさん:04/09/09 10:35
ていうかなんの断りもなしに一般的なモジュール使ってたら
普通改造してるなんて思わないよな...


992 :デフォルトの名無しさん:04/09/09 13:00
991に同意しつつ埋めてみる。

993 :デフォルトの名無しさん:04/09/09 13:49
Perlについての質問箱 12箱目
http://pc5.2ch.net/test/read.cgi/tech/1094579428/


994 :デフォルトの名無しさん:04/09/09 15:06
終了促進

995 :デフォルトの名無しさん:04/09/09 15:06
995

996 :デフォルトの名無しさん:04/09/09 16:02
記念カキコ v(^-^*)

997 :デフォルトの名無しさん:04/09/09 16:10
委員長死ね

998 :デフォルトの名無しさん:04/09/09 16:16
998

999 :デフォルトの名無しさん:04/09/09 16:25
ゴダイゴ

1000 :デフォルトの名無しさん:04/09/09 16:29
1000ならPerl6明日リリース

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

239 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.02 2018/11/22 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)