Perlについての質問箱 25箱目
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2006/06/02(金) 23:43:29"There's more than one way to do it" ということで、Perlの奥深さについて皆で語り合い、追求してまいりましょう。
CGIについての質問は板違いです。WEBプログラミング板でどうぞ。
CGIとPerlの区別がつかない人もWEBプログラミング板に行ってください。
(WEBプログラミング板 http://pc8.2ch.net/php/ )
CGIの質問は答えがPerlと全然関係ない話に帰着する場合が多かったりするのでWEBプログラミング板に行って聞いたほうが得ですよ。
このスレでは(CGI以外の)純粋にPerlのみに関係する質問を取り扱っていこうと思います。
http://www.perl.org/get.html
● 2006/06/02現在の最新版: 5.8.8
● 2006/06/02現在の開発版: 5.9.3
リンク集は>>2-3
過去スレは>>4
0002デフォルトの名無しさん
NGNGPerlプログラミング講座: http://www.site-cooler.com/kwl/perl/
[本]
リャマ: http://www.oreilly.co.jp/books/4873111269/
駱駝: http://www.oreilly.co.jp/books/4873110963/
Effective Perl: http://www.ascii.co.jp/books/detail/4-7561/4-7561-3057-7.html
クックブック: http://www.oreilly.co.jp/books/4873112028/
[オンラインマニュアル] (追加)
最新のドキュメント: http://search.cpan.org/~nwclark/perl-5.8.8/
perl5.8.xのドキュメント(一部): http://www.kt.rim.or.jp/~kbk/perl-5.8/
perl5.005_03 のドキュメント: http://www.kt.rim.or.jp/~kbk/perl5.005/
日本語ドキュメント検索: http://www.cpan.jp/search.cgi
perldoc.jp: http://www.perldoc.jp/
Perldoc.com: http://www.perldoc.com/
0003デフォルトの名無しさん
NGNGCPAN.com: http://search.cpan.org/
河馬屋二千年堂: http://homepage3.nifty.com/hippo2000/
[テクニック]
Perlメモ: http://www.din.or.jp/~ohzaki/perl.htm
Perlのページ: http://homepage1.nifty.com/nomenclator/perl/
Perlの小技: http://homepage3.nifty.com/hippo2000/perltips/index.htm
[Perl5.8Unicodeメモ]
http://www.pure.ne.jp/~learner/program/Perl_unicode.html
http://www.namazu.org/~tsuchiya/perl/perl-5.8.html
http://www.lr.pi.titech.ac.jp/~abekawa/perl/perl_unicode.html
0004デフォルトの名無しさん
NGNG1 ttp://pc.2ch.net/tech/kako/1017/10177/1017736187.html
2 ttp://pc3.2ch.net/tech/kako/1033/10336/1033688230.html
3 ttp://pc2.2ch.net/tech/kako/1041/10412/1041205885.html
4 ttp://pc2.2ch.net/tech/kako/1048/10485/1048519394.html
5 ttp://pc5.2ch.net/tech/kako/1053/10530/1053053082.html
6 ttp://pc5.2ch.net/tech/kako/1060/10606/1060689008.html
7 ttp://pc2.2ch.net/test/read.cgi/tech/1068051036/
8 ttp://pc2.2ch.net/test/read.cgi/tech/1074151549/
9 ttp://pc5.2ch.net/test/read.cgi/tech/1079114157/
10 ttp://pc5.2ch.net/test/read.cgi/tech/1085564875/
11 ttp://pc5.2ch.net/test/read.cgi/tech/1090889189/
12 ttp://pc5.2ch.net/test/read.cgi/tech/1094579428/
13 ttp://pc5.2ch.net/test/read.cgi/tech/1097851764/
14 ttp://pc5.2ch.net/test/read.cgi/tech/1101649274/
15 ttp://pc5.2ch.net/test/read.cgi/tech/1105953092/
16 ttp://pc8.2ch.net/test/read.cgi/tech/1111034732/
17 ttp://pc8.2ch.net/test/read.cgi/tech/1117870308/
18 ttp://pc8.2ch.net/test/read.cgi/tech/1121804136/
19 ttp://pc8.2ch.net/test/read.cgi/tech/1126977805/
20 ttp://pc8.2ch.net/test/read.cgi/tech/1131286411/
21 ttp://pc8.2ch.net/test/read.cgi/tech/1134327348/
22 ttp://pc8.2ch.net/test/read.cgi/tech/1138519327/
23 ttp://pc8.2ch.net/test/read.cgi/tech/1141742901/
24 ttp://pc8.2ch.net/test/read.cgi/tech/1146022352/
0005デフォルトの名無しさん
2006/06/02(金) 23:59:220006デフォルトの名無しさん
2006/06/03(土) 00:16:380008デフォルトの名無しさん
2006/06/03(土) 02:52:27Ζ
0009デフォルトの名無しさん
2006/06/03(土) 07:34:07a.plとb.pmという二つのファイルは同じディレクトリにあります。
#--a.pl--
use b;
printString();
#--b.pm--
package b;
sub printString(){
print "aaa";
}
sub import() {
*{"main::printString"} = \&printString;
}
1;
この状態でa.plを実行すると
&main::printStringサブルーチンが見つからないとエラーになります。
どこか間違っていますか?
0010デフォルトの名無しさん
2006/06/03(土) 07:57:36bというモジュール名がまずい。モジュール名をhoge等に変えるべし。
標準モジュールにBと言うのがあって、こっちが読み込まれてしまっている。
ttp://search.cpan.org/~nwclark/perl-5.8.8/ext/B/B.pm
ところで、それをやるならExporterを使うのが一般的だけれど、単に練習かな?
ttp://search.cpan.org/~nwclark/perl-5.8.8/lib/Exporter.pm
00119
2006/06/03(土) 09:16:55use bなのにBが読み込まれちゃうんですね。
ありがとうございます。すっきり解決しました。
おっしゃる通り練習です。
続・初めてのPerlってのに載っていたimportの
練習でした。
0012デフォルトの名無しさん
2006/06/03(土) 09:46:580013デフォルトの名無しさん
2006/06/03(土) 09:53:190014デフォルトの名無しさん
2006/06/03(土) 10:32:360015デフォルトの名無しさん
2006/06/03(土) 12:00:370016デフォルトの名無しさん
2006/06/03(土) 13:14:32>Rubyに完全に取って代わられちゃったね。
>正確に言えば、まともなプログラマはみんなRubyに流れちゃって、
>自分が書いたコードの効率もろくに把握できていないようなアホだけが
>未だにぶら下がっている・・・っていう、ある意味過疎より酷い惨状だけど。
>>999
>>998
>3年前の状況としてなら賛成。
この頃ruby基地からのアラシが少なくなったと思ったらまた出たか。
漏れはPerlの方が速いし、モジュールが充実してるからPerl使ってる。
0017デフォルトの名無しさん
2006/06/03(土) 13:17:16おまえも荒らしに加担してるのわかってんだろうな?
0018デフォルトの名無しさん
2006/06/03(土) 13:50:47お前も俺もな。
遠巻きに眺めながらそっとしておいてあげるのが最高のスルーション。
0019デフォルトの名無しさん
2006/06/03(土) 13:58:35解決済みだろけど書いてみた。
print do { local $/ ; <> } =~ /.*?(([^¥n]*?¥n){1000})¥Z/ ;
一行だ。
0020デフォルトの名無しさん
2006/06/03(土) 13:59:57前スレ>>988
| 988 名前:デフォルトの名無しさん:2006/06/03(土) 00:29:18
| Template Toolkitで使用する
| テンプレートファイルをうまくデバッグする方法はありませんか。
|
| テンプレートに誤りがあるときのエラーメッセージ
| は決まって "Bad file descriptor at ..."であり、
| テンプレート修正の手がかりになりません。
TT使ったこと無いんだけど、簡単なのを書いてみてもエラーの箇所が表示されるし、
モジュール内を検索してもそのエラーメッセージが出てこなかった。
再現用のサンプルを出して貰えると使ったことの無い人でも調べて回答できるかも。
0021デフォルトの名無しさん
2006/06/03(土) 14:01:23my $data = join '', <> ;
$data =~ s/.*?(([^¥n]*?¥n){50})¥Z/$1/s ;
print $data ;
0022デフォルトの名無しさん
2006/06/03(土) 14:06:27>print do { local $/ ; <> } =~ /.*?(([^¥n]*?¥n){1000})¥Z/ ;
{1000} を{1,1000} にすりゃいい話だ罠。
0023デフォルトの名無しさん
2006/06/03(土) 14:54:40これって無名配列なの?
それは単なるリスト(のスライス)
リスト=スカラーコンテキストでは最後の要素を返す
配列=スカラーコンテキストでは要素数を返す
ということで、一応区別はある。
ちなみに無名配列そのものをその場でつくることは出来ないが、あえて書くなら
@{[0, 1, 2]}/${[0, 1, 2]}[0]とか、こんな感じでつくることは出来る。まぁ、リストがあれば事足りるのでする価値はないが。
002523
2006/06/03(土) 15:33:58ありがとうございます
0026デフォルトの名無しさん
2006/06/03(土) 15:34:23| Anonymous
無名(匿名)
| Used to describe a "referent" that is not directly accessible through a named "variable".
名前付けられた変数を通して直接的にアクセスできない指示物(=リファレンスの指す物)を言います。
| Such a referent must be indirectly accessible through at least one "hard reference".
そのような指示物は一つ以上のハードリファレンスを通して非直接的にアクセスしなければなりません。
| When the last hard reference goes away, the anonymous referent is destroyed without pity.
最後のハードリファレンスが消えたときに、無名の指示物は容赦なく消されます。
って所か?訳の正確性はまったく保障しないが
0027デフォルトの名無しさん
2006/06/03(土) 15:49:440028デフォルトの名無しさん
2006/06/03(土) 16:40:21知らなかった。
sub s1 {
return qw(a b c);
}
sub s2 {
return my @x=qw(a b c);
}
sub s3 {
my @x=qw(a b c);
return @x[0..$#x];
}
とすると、scalar &s1 は c , scalar &s2 が 3 , scalar &s3 が c なのか。
戻り値のリストと配列は、意識の片隅に入れておいた方が良いのかも。
0029デフォルトの名無しさん
2006/06/03(土) 17:13:06どういった時にそんな使い方するのか
片隅に入れるならwantarray
0030デフォルトの名無しさん
2006/06/03(土) 17:43:42whileをいれこにしてやってるんですがもっとこうりつてきなものはありますか?
0031デフォルトの名無しさん
NGNG0032デフォルトの名無しさん
2006/06/03(土) 18:00:06テンプレートファイルをうまくデバッグする方法はありませんか。
テンプレートに誤りがあるときのエラーメッセージ
は決まって "Bad file descriptor at ..."であり、
テンプレート修正の手がかりになりません。
0033デフォルトの名無しさん
2006/06/03(土) 18:03:030034デフォルトの名無しさん
2006/06/03(土) 18:08:450035デフォルトの名無しさん
2006/06/03(土) 18:29:41これってはてなで全く同じ質問を見たんだけど……
本人? 回答予定者?
0036デフォルトの名無しさん
2006/06/03(土) 18:31:03釣りだろうけど暇だから書く。
>ふたつのふぁいるをひらいてそれぞれのぎょうをひかくして
ここから判断して二つのファイルの行数は一緒。
my @one ; # 一つ目のファイルの中身
my @two ; # 二つ目のファイルの中身
for ( my $i = 0 ; $i <= $#one ; $i ++ ){
# $one[$i] と $two[$i] を比較しろ!
}
0037デフォルトの名無しさん
2006/06/03(土) 19:00:520038酩酊 ◆TWARamEjuA
NGNGでも巨大なファイルだとあぼーんしちゃいそう。。。
0039酩酊 ◆TWARamEjuA
NGNG# キー作成
my $MD5_value = Digest::MD5->new;
my %hash = map {
$MD5_value->add($_);
($MD5_value->hexdigest, 1)
} <FH>;
みたいなみたいな。。。
0040酩酊 ◆TWARamEjuA
NGNGmy %hash = map {
my $MD5_key = $MD5_value;
$MD5_key->add($_);
($MD5_value->hexdigest, 1)
} <FH>;
もちょっと最適化できそうな。。。
0041デフォルトの名無しさん
2006/06/03(土) 20:31:23俺だったら
1.コマンドのsplitかまして、それぞれに>>36
2.素直に両方のファイルをseekして、それに>>36を適用
する。むろん検索ミスがおこらない様にポインタをずらしながら。
行が合ってないとかだったら「条件」によって変わるなあ。
0042デフォルトの名無しさん
2006/06/03(土) 20:49:29一発読み込みは危険。
同じデータを違うソフトで使いまわすときもあるので、同じ行番号って縛りはなくしたほうがいいな。
0043デフォルトの名無しさん
2006/06/03(土) 21:03:57diffを参考にするのはどうよ?
0044デフォルトの名無しさん
2006/06/03(土) 21:14:19open (my $in1,'file1') or die
open (my $in2,'file2') or die
open (my $out,'>result') or die;
while (defined(my $val_1=<$in1>){
my $val_2=<$in2>;
if (比較条件($val_1,$val_2)){
print $out 加工($val_1,$val_2);
}
}
となって、どこでwhileが入れ子になるのかわからんのだが....
いつの間にか、同一かどうかを比較する話になっているが、
2つのファイルの各行の比較というと、 $val_1 > $val_2 といった条件もあるわけですよね?
もし、同一かどうかを比較するなら、open (my $in ,"diff $file1 $file2|") とやる方法もある。
0045デフォルトの名無しさん
NGNG0046デフォルトの名無しさん
2006/06/03(土) 21:30:260047デフォルトの名無しさん
NGNG0048デフォルトの名無しさん
2006/06/03(土) 21:39:18ありがとう。
\nという文字そのものを検索するにはどしたらいい?
0049デフォルトの名無しさん
NGNG0050デフォルトの名無しさん
2006/06/03(土) 21:42:04Bio分野の者だが。
500Mbくらいのテキストだったら平気でまる飲みさせて
るしまる飲みできるぞ。undef $/; して。
1Gを越えた時はさすがにseekしたが。
そんなに何千万行ものデータが出るのか?物理分野って。
#perli.5.005時代はもちろんまる飲みなんてさせてません。
0051デフォルトの名無しさん
2006/06/03(土) 21:45:12ありがとう。
最後に空行にみえてしまう行を検索するにはどうしたらいいですか?
空行を検索するのはできるんですが。
0052デフォルトの名無しさん
NGNG0053デフォルトの名無しさん
2006/06/03(土) 21:54:55ヒント:メモリ
0054デフォルトの名無しさん
2006/06/03(土) 21:54:55目でみると実際は空行に見えるが、tabが入っていて
実は空行ではない。のを検索するにはどうしたらいいですか?
その他の空行ではない行でtabが入っていても無視する。
というものです。
0055デフォルトの名無しさん
2006/06/03(土) 21:55:34その質問はここでしていい質問じゃない。帰れ。
0056デフォルトの名無しさん
2006/06/03(土) 21:57:160057デフォルトの名無しさん
2006/06/03(土) 21:58:26氏ねキチガイ。
0058デフォルトの名無しさん
2006/06/03(土) 22:02:36すまん失念してた。>メモリの事。
0059デフォルトの名無しさん
2006/06/03(土) 22:02:50自演荒らし乙。
0060デフォルトの名無しさん
2006/06/03(土) 22:06:16なぜ54にレス?
にしても500メガPerlで生で読めるPCって個人で持ってるの?
うちの研究室じゃPCに回す予算なんてないから、メモリ増設したい奴は自費でやれ、だよ。
006154
2006/06/03(土) 22:06:27空行に隠れるタブのみを検索したいんです。
0062デフォルトの名無しさん
2006/06/03(土) 22:15:54レスみすったw
うちは「メモリは消耗品予算で買えるからOK。PCは予算がない!」
てんで5年前のMacに積めるだけのメモリを積んでますw
0063デフォルトの名無しさん
2006/06/03(土) 22:29:19どーしても突っ込みたくなった。
my $val_2=<$in2>;
file2は先頭行しか見ないのか?
0064デフォルトの名無しさん
2006/06/03(土) 22:32:24なんで?file1のwhileループが回ってる間、一行ずつfile2からも引いてると思うが
0065デフォルトの名無しさん
2006/06/03(土) 22:39:10<FH>の意味と使い方を調べてごらん。
006663
2006/06/03(土) 22:43:330067デフォルトの名無しさん
2006/06/04(日) 00:39:09ようとしたんです。
32文字ぐらい *16列 * 4098行 = 2M 程度。
メモリは2ギガ積んでいます。
しかし、実行するとメモリの使用率がガンガン上がって
いって止まってしまうんです。
use CGI::Pretty をコメントアウトすると問題ありません。
テーブルのサイズが小さいときは問題ありません。
なぜでしょう?
CGI::Pretty は使わないほうが速いというのはわかるんです
が、使わないと、HTMLソースがすごく見にくいので、できれ
ば使いたいんです。
CGI::Pretty って\tと\nを入れているだけにしか見えないの
ですが、そんなにメモリを使用するものなのでしょうか?
Windows,Linuxどちらでも、以下のスクリプトでも再現しました。
use strict;
use CGI qw(:standard);
use CGI::Pretty;
my @trs;
my @tds=qw(0 1 2 3 4 5 6 7 8 9 a b c d e f);
push @trs,td({bgcolor=>'#FFFFFF'}, \@tds) for (0..4097);
print table(Tr \@trs);
どこが問題なのでしょう?
0068デフォルトの名無しさん
2006/06/04(日) 01:03:320069デフォルトの名無しさん
2006/06/04(日) 01:08:48試したら、サーバがswapし始めて、応答しなくなった。
0070デフォルトの名無しさん
2006/06/04(日) 01:18:450071デフォルトの名無しさん
2006/06/04(日) 01:21:29ヒント:header,start_html
0072デフォルトの名無しさん
NGNGワラタ
0073デフォルトの名無しさん
2006/06/04(日) 01:28:45これはperlでなく、IEの問題。
そのスクリプトをtest.plという名前で保存して
perl test.pl >test.html
ってやってごらん。
perlの処理にはそんなにかかっていないはず。
007473
2006/06/04(日) 01:42:18試したら、perlの処理の問題でした。
IEの問題ってのは忘れてください。
0075デフォルトの名無しさん
2006/06/04(日) 01:50:19ウイルスコード貼り逃げ厨に笑ってもらえて光栄です><
http://pc8.2ch.net/test/read.cgi/php/1149089424/2
0076デフォルトの名無しさん
2006/06/04(日) 03:37:29これはひどい
0077デフォルトの名無しさん
2006/06/04(日) 08:04:020078デフォルトの名無しさん
2006/06/04(日) 09:19:280079デフォルトの名無しさん
2006/06/04(日) 09:34:32どちらで囲んだ方が速いかなと思い
以下のベンチを取ったのですが
use strict;
use Benchamark;
timethese(100000, { TEST1=>'\sub1', TEST2=>'\sub2'});
sub1 {
open my $fh, "<", "test.txt";
}
sub2 {
open my $fh, '<', 'test.txt';
}
テスト結果が表示された直後
Can't call method "sub2" without a package or object reference at
となってしまいます。ちゃんとsub2をリファレンス渡ししてるのになんで・・・
一応テストはうまくいっているようなのですが
どこがおかしいですか?
008079
2006/06/04(日) 09:49:340081デフォルトの名無しさん
2006/06/04(日) 10:00:48TEST1: 27 wallclock secs ( 7.73 usr + 16.20 sys = 23.93 CPU) @ 4178.16/s (n
=100000)
TEST2: 28 wallclock secs ( 8.01 usr + 15.89 sys = 23.90 CPU) @ 4183.23/s (n
=100000)
Bechmarkの結果についてなのですが、
上記のようなBenchmarkの結果はどちらが速いのでしょうか?
wallclockのところを見るとTEST1の方が速いように思いますが
消費したCPU時間を見てみるとTEST2の方が少ないようです
あと、@以降の部分は一秒間に回ったループの回数ですよね?
ということはTEST2の方が速いということなのでしょうか?
いったいどれを見たらよいのでしょうか・・・
0082デフォルトの名無しさん
2006/06/04(日) 10:12:51use encodingはメンテナも推奨していない
と言ってましたが詳しく教えてください
今までjcodeとかでちくちくやっていたのを
(特にwinな環境なので)
ソースの最初にuse encoding 'sjis';
とするだけで漢字を含んだ正規表現も幸せ
に出来ていたので不安になってしまいました
確かソースをeuc-jpに統一しても日本語を含んだ
正規表現に関しては多くの問題は解決するけど
完璧には動かないんですよね?
それをencodingで解決できたと思っていたんですが
それがだめだとすると一体perlでの日本語処理は
どうすればよいのでしょうか?
0083デフォルトの名無しさん
2006/06/04(日) 10:28:04Perlの方向性としては、 ソースコードをUTF8で書き、use utf8 するというのがいいらしいです
http://www.pure.ne.jp/~learner/program/Perl_unicode.html
008467
2006/06/04(日) 10:34:13WebProg板に行ってきます。
同じ質問を違う板に書いても、この場合はマルチじゃないですよね?
0085デフォルトの名無しさん
2006/06/04(日) 10:36:54CGI::Prettyの_prettyPrintというサブルーチンは、@CGI::Pretty::AS_ISにある
タグの間以外はインデントを追加する、という単純な動作なようだが、
かなり効率が悪いアルゴリズムになっている。
@CGI::Pretty::AS_ISに含まれるタグの対で文字列を前半分と後ろ半分に
わけてそれぞれ再帰してインデントつけたのを最後にくっつけるわけだが、
AS_ISに<td>..</td>が含まれているので、<td>の出現数分再帰し、
なおかつ途中経過の文字列が全部スタックに詰まれるので<td>の
数の2乗に比例した計算時間とメモリが使われる。
アルゴリズムを直してもらうかあきらめるかじゃないだろうか。
0086デフォルトの名無しさん
2006/06/04(日) 10:37:10use strict;
と書くのと
use strict;
package hoge;
と書くのは何か違いがあるのでしょうか?
0087デフォルトの名無しさん
2006/06/04(日) 12:04:50use encodingで起こりうる問題を把握して使っていれば問題ないと思うよ。
分かってないとハマる可能性があるから、使わなくて済むなら使わないほうがいいってこと。
>>83の人も言ってるように、ソースはutf8で書いて、
入出力時にcp932その他に変換したほうが望ましいと思います。
ついでに言うと、Windowsでsjisを使うのはやめたほうがいいよ。
0088デフォルトの名無しさん
2006/06/04(日) 12:57:04はい、違いがあります。
strict プラグマはレキシカルスコープで効きます。
従って use strict; よりも前に書かれた package 宣言は strict によるチェックを受けません。
しかし、package 宣言において厳格さのチェックが必要になるケースはほとんどないのでこれが問題になることは稀です。
実際モジュールなどでは大抵、可読性のためにほとんどのコードに先んじて package 宣言を行うのが半ば慣例化しています。
通常はこの慣例に従うのが良いでしょう。
0089デフォルトの名無しさん
2006/06/04(日) 12:59:38> ついでに言うと、Windowsでsjisを使うのはやめたほうがいいよ。
Mac なら問題ありませんか?
0090デフォルトの名無しさん
2006/06/04(日) 14:08:49どうもありがとうございます。
ところでpackage宣言でstrictを要する場合ってほとんどないにしても
何かあるわけですか?さっぱり思いつかないんですが
どういう場合があるか教えてもらえませんか?
0091デフォルトの名無しさん
2006/06/04(日) 14:11:02どうもありがとう
そのuse encodingで起こり得る問題について
詳しく教えてもらえませんか?
あとWinでは入出力時にsjisではなくてcp932
を使えとのことですが、この二つって同じもの
じゃないのですか?どこが違うのですか?
0093デフォルトの名無しさん
2006/06/04(日) 14:31:22一番大きな問題は encoding の効きが「グローバル過ぎる」こと。
use encoding; したスクリプトから呼び出されたモジュールの類にも見境無しに効く。
依存関係のどこかで、これが問題になるようなコードがあれば、その挙動の予測ができない。
cp932 については文字コード関係の文書をあたってみて。
要するに「両者が完全には一致していない」ということ。
0094デフォルトの名無しさん
2006/06/04(日) 17:21:32比べるべきはTotalだが、ほとんど有意差はみられない。
0095デフォルトの名無しさん
2006/06/04(日) 18:13:102chで#アだとtsGpSwX8mo
自分の環境でトリップキーがアだとIApAHNvIKg
になります。なぜかトリップキーが2文字以上あればうまくいきます。
「あ」も「a」もだめでした。
ActivePerl5.8.8 Build 817です。
プログラム内容は
$tripkey="ア";
$salt = substr($tripkey.'HG', 1, 2);
$salt =~ tr/:;<=>?\@[\\]^_`/ABCDEFGabcdef/;
$salt =~ tr/\x80-\xFF/\x00-\x7F/;
$salt =~ tr/\x7B-\x7F/\x2e-\x32/;
$salt =~ tr/\x14-\x2D/\x61-\x7A/;
$salt =~ tr/\x00-\x13/\x47-\x5A/;
$trip = substr(crypt($tripkey, $salt), -10);
print $trip;
です。
何故でしょうか?どのようにしたら2chと同じトリップが出せるのでしょうか?
0096デフォルトの名無しさん
2006/06/04(日) 18:17:580098デフォルトの名無しさん
2006/06/04(日) 20:03:25&foo(%hash);
sub foo {
%hash = $_[0];
print join "\n", keys %hash
}
とやってみたのですが、うまくいかないようです。
0099デフォルトの名無しさん
2006/06/04(日) 20:12:15&foo(@array);
sub foo {
@array = $_[0];
print join "\n", @array
}
とやってみたのですが、うまくいかないようです。
0100デフォルトの名無しさん
2006/06/04(日) 20:14:43じゃなかったら本を読もうね。
0101デフォルトの名無しさん
2006/06/04(日) 20:25:01&foo($scalar);
sub foo {
$scalar = $_[0];
print $scalar
}
とやってみたのですが、うまくいきました。
どう見ても釣りです。本当にありがとうございました
■ このスレッドは過去ログ倉庫に格納されています