トップページ⇒tech
1001コメント305KB

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

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん2007/03/14(水) 22:54:12
"The duct tape of the Internet" こと、Perlについての質問箱です。
"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/12/21現在の最新版: 5.8.8
● 2006/12/21現在の開発版: 5.9.3

前スレ
Perlについての質問箱 29箱目
http://pc11.2ch.net/test/read.cgi/tech/1166708139/

リンク集は>>2-3
過去スレは>>4
0899デフォルトの名無しさん2007/06/04(月) 23:46:46
>>897
Perl 正規表現でググればウンザリするほど答えが見つかると思います

>>898
そうです
0900デフォルトの名無しさん2007/06/04(月) 23:47:18
なるほど、自分で自分を許していないのですね。
ではあなたが黙れば解決です。あなたにできる最大の「低レベルな会話の排除」ですね!

あと、「本文」というのは面白い言い方だと思います。
相手に突っ込まれて、いかに馬鹿なことを言っていたかが自覚できた途端に
そこを蜥蜴の尻尾みたいに切り捨てて、「ノーダメージだよーん」ということにするのですね。
0901デフォルトの名無しさん2007/06/05(火) 00:05:57
>>897
なんかすごい無駄だらけなソースだなあ・・・
0902デフォルトの名無しさん2007/06/05(火) 00:31:50
ノーダメージだよーん
0903デフォルトの名無しさん2007/06/05(火) 00:33:23
>>900
なんかすごい無駄だらけな文だなあ・・・
0904デフォルトの名無しさん2007/06/05(火) 00:42:53
なんかすごい無駄だらけなスレだなあ・・・
0905デフォルトの名無しさん2007/06/05(火) 00:48:01
粘着荒らし酷いな
0906デフォルトの名無しさん2007/06/05(火) 00:52:00
粘着した方が勝ち!
0907デフォルトの名無しさん2007/06/05(火) 01:14:38
ノーダメージだよーん
0908デフォルトの名無しさん2007/06/05(火) 01:34:33
荒らしはやめてー><
0909デフォルトの名無しさん2007/06/05(火) 04:03:09
変な奴が現れたら一人も漏らさず全部相手するように
それがこのスレのお約束
0910デフォルトの名無しさん2007/06/05(火) 09:34:09
>>909
お前、もう帰っていいぞ。
0911デフォルトの名無しさん2007/06/05(火) 10:21:08
次スレのテンプレのことについて、次の提案があるのだが、どうだろうか?

1.過去スレを入れるのはやめる。(前スレだけがあればよいと思う)
2.「エラーなどの問題への対処の相談には、問題が再現する完全かつ最短のソースを
  作成して下さい。作成する過程で問題が解決する場合も多いです。」
との注意書きを >>1 に入れる。
(質問者が必要な情報を小出しにするのを防ぐため)
3.>>10をテンプレを入れる(但し、内容は、以下のように少し変更する)。
---------------------------------------------------------
#  【Perl 日本語処理の基礎の基礎】
# このレスは、Windows の ActivePerl で日本語処理を行う場合のテンプレートです。
# このレスの内容をそのまま、UTF8 形式のソースファイルに保存して下さい。
# 入出力ともシフトJIS形式のファイルまたはDOS窓を想定しています。
# まず、以下の行を先頭に入れて下さい。
use utf8;
use open IO => ":encoding(cp932)";
binmode STDIN => ":encoding(cp932)";
binmode STDOUT => ":encoding(cp932)";
binmode STDERR => ":encoding(cp932)";
# 次に、あなたが実行したい処理の内容を入れて下さい。
print "SJISには、「十表貼申予暴」のようなダメ文字がある。\n";
sleep(1);
# 以上の内容は、日本語処理が解らない人でも、とりあえず日本語処理ができてしまう
# おまじないです。条件が異なる場合の対処方法は、ご自分で勉強して下さい。
0912デフォルトの名無しさん2007/06/05(火) 11:44:29
あれ?過去スレ保管所みたいなのなかったっけ?
0913デフォルトの名無しさん2007/06/06(水) 12:20:20
ttp://namahage.dip.jp/blog/archive/2007/06/06/98399.aspx
0914デフォルトの名無しさん2007/06/06(水) 19:43:33
podやpod2htmlとかで検索していたら、クロスリファレンスという言葉が出てきたのですが
クロスリファレンスで検索してもよくわかりませんでした。
このことに関することが書かれているウェブサイトや文献があったら教えてほしいです。
よろしくお願いします。
0915デフォルトの名無しさん2007/06/06(水) 20:07:20
>>914
naoya さんとこの循環参照の解説嫁ば?

ttp://d.hatena.ne.jp/naoya/20051012/1129115986
cross reference って日本語にすれば相互参照で、現実のプログラム中では
ぐるぐる回っちまうから、、、てことで
相互参照、循環参照あたりでググるのもありって事で。
0916デフォルトの名無しさん2007/06/06(水) 20:24:49
podでクロスリファレンス言うたら L<> のことちゃうのん?
0917デフォルトの名無しさん2007/06/06(水) 20:38:18
orz...
0918デフォルトの名無しさん2007/06/06(水) 21:11:42
質問〜

print my@aaa=(5,5,5,5,5);
print my@bbb=(3,3,3,8,8,8);
↑
これと、
↓
print my@aaa=(5,5,5,5,5);
print @aaa=(3,3,3,8,8,8);

↑

下のほうは使い終わった(もう処理しない予定の)@aaaを再利用しています。
上のやつと下のやつはどっちのほうが処理早いですか?
0919デフォルトの名無しさん2007/06/06(水) 21:23:16
どっちもどっち
好きに使え
0920デフォルトの名無しさん2007/06/06(水) 21:26:15
>>918
use Benchmark;

timethese 1000000, {
test1 => sub {
my@aaa=(5,5,5,5,5);
my@bbb=(3,3,3,8,8,8);
},
test2 => sub {
my@aaa=(5,5,5,5,5);
@aaa=(3,3,3,8,8,8);
}
};
0921デフォルトの名無しさん2007/06/06(水) 21:26:27
print による時間ロスは等価だとして

use Benchmark qw(timethese) ;
sub op1 { my @one = 0 .. 10_000 ; my @two = 0 .. 10_000 ; }
sub op2 { my @one = 0 .. 10_000 ; @one = 0 .. 10_000 ; }
timethese( 1000, { op1 => 'op1', op2 => 'op2' } ) ;

Benchmark: timing 1000 iterations of op1, op2...
op1: 15 wallclock secs (13.92 usr + 0.26 sys = 14.18 CPU) @ 70.52/s (n=1000)
op2: 22 wallclock secs (19.87 usr + 0.38 sys = 20.25 CPU) @ 49.38/s (n=1000)
0922デフォルトの名無しさん2007/06/06(水) 21:32:11
>>920
後者のほうがちょっとだけ速いな
0923デフォルトの名無しさん2007/06/06(水) 21:35:42
>>919-922
�dクス
ベンチマークの方法示してくれて更にトンクス
09249142007/06/06(水) 22:51:21
>>915-917
L<> のところをしっかり読んでみたらクロスリファレンスってのがありました。
ハイパーリンクのようなものと見て問題ないでしょうか?

pod2htmlの解説でクロスリファレンスという言葉が出てきたときは、なにかこう
クロスリファレンスというものを記述すれば関連するpodがまとめて変換されたり
という、うれしい事が起こるのかななんて妄想してしまいました。(汗
(もともとそういうことができないかなと思って検索していたので・・・)

単純に文書間のリンクであるならば、簡単に理解できそうです。

どうもありがとうございました。
0925デフォルトの名無しさん2007/06/06(水) 23:53:10
>>921
これは面白いね。
sub op3 { my @one; @one = 0 .. 10_000; my @two; @two = 0 .. 10_000; }
を試したら更に遅くなった。

my @array = 0 .. 10_000;
sub op4 { my @one = @array; my @two = @array; }
sub op5 { my @one; @one = @array; my @two; @two = @array; }

は同じ程度の速度だから、 .. が遅くなるのかな。
0926デフォルトの名無しさん2007/06/07(木) 00:20:49
リファレンスというか、値を格納する番地を確保する時間の差じゃないかな?
sub op1 { my @one = 0 .. 10_000 ; my @two = 0 .. 10_000 ; }
sub op2 { my @one = 0 .. 10_000 ; @one = 0 .. 10_000 ; }
op2のほうの@oneの書き換え時には、既に値を格納する10000個の番地が出来てるから早くなる。
op1のほうは@oneの番地10000個の他に@twoの番地10000個を作ってるから遅くなるのかなと。

それならば、
my @array = 0 .. 10_000;
sub op4 { my @one = @array; my @two = @array; }
sub op5 { my @one; @one = @array; my @two; @two = @array; }
のop4とop5がほぼ同じスピードってのも納得できそう。(4も5も番地の数は同じ。)

新しく配列作るより、使わなくなった配列を再利用したほうがスピード上がるってことかな〜と。
再利用したほうがメモリ効率も良さ気。
0927デフォルトの名無しさん2007/06/07(木) 06:17:52
>>926
921 は「 op2 の方が遅い」って話しだぞ
0928デフォルトの名無しさん2007/06/07(木) 07:28:18
922のせいに違いない
0929デフォルトの名無しさん2007/06/07(木) 07:41:27
921 デフォルトの名無しさん sage 2007/06/06(水) 21:26:27
print による時間ロスは等価だとして

use Benchmark qw(timethese) ;
sub op1 { my @one = 0 .. 10_000 ; my @two = 0 .. 10_000 ; }
sub op2 { my @one = 0 .. 10_000 ; @one = 0 .. 10_000 ; }
timethese( 1000, { op1 => 'op1', op2 => 'op2' } ) ;

Benchmark: timing 1000 iterations of op1, op2...
op1: 15 wallclock secs (13.92 usr + 0.26 sys = 14.18 CPU) @ 70.52/s (n=1000)
op2: 22 wallclock secs (19.87 usr + 0.38 sys = 20.25 CPU) @ 49.38/s (n=1000)


922 デフォルトの名無しさん sage 2007/06/06(水) 21:32:11
>>920
後者のほうがちょっとだけ速いな
09309212007/06/07(木) 08:03:09
本要件で誤解を招くまねをした俺を晒すのは分るんだが、
920 の結果を 922 は正しくレスしてる。晒す意味が分らん。

% perl --
use Benchmark;
timethese 1000000, {
 test1 => sub { my@aaa=(5,5,5,5,5); my@bbb=(3,3,3,8,8,8); },
 test2 => sub { my@aaa=(5,5,5,5,5); @aaa=(3,3,3,8,8,8); }
};
^D
Benchmark: timing 1000000 iterations of test1, test2...
test1: 2 wallclock secs ( 1.47 usr + 0.00 sys = 1.47 CPU) @ 680272.11/s (n=1000000)
test2: 0 wallclock secs ( 1.37 usr + -0.01 sys = 1.36 CPU) @ 735294.12/s (n=1000000)
0931デフォルトの名無しさん2007/06/07(木) 09:13:36
>>930
ベンチマーク結果の見方が正しくわからんけど、
>>927-929が間違ってて、他のレスは正しい、でok?
0932デフォルトの名無しさん2007/06/07(木) 09:24:16
use Benchmark qw(timethese) ;
sub op1 { my @one = 0 .. 10_000 ; my @two = 0 .. 10_000 ; }
sub op2 { my @one = 0 .. 10_000 ; @one = 0 .. 10_000 ; }
timethese( 1000, { op1 => 'op1', op2 => 'op2' } ) ;

Benchmark: timing 1000 iterations of op1, op2...
op1: 4 wallclock secs ( 3.20 usr + 0.00 sys = 3.20 CPU) @ 312.21/s (n=1000000)
op2: 6 wallclock secs ( 4.89 usr + 0.00 sys = 4.89 CPU) @ 204.46/s (n=1000000)

>>930と逆の結果っぽいんだけどなんで??
つか最後の
@ 312.21/s (n=1000000)と
@ 204.46/s (n=1000000)って
どっちが早いの??
0933デフォルトの名無しさん2007/06/07(木) 09:39:36
実行環境によるって事じゃないのか
0934デフォルトの名無しさん2007/06/07(木) 10:05:22
>>932が回したのは>>921のコードで
>>930は>>921が回した>>920のコードだから。

>>932
op1: 1000 iterations / 3.20 CPU (sec.) = 312.21/s
op2: 1000 iterations / 4.89 CPU (sec.) = 204.46/s
な感じ。なんで n=1000000 なのか知らないけど。
0935デフォルトの名無しさん2007/06/07(木) 10:07:37
>>932
> op1: 4 wallclock secs ( 3.20 usr + 0.00 sys = 3.20 CPU) @ 312.21/s (n=1000000)
> op2: 6 wallclock secs ( 4.89 usr + 0.00 sys = 4.89 CPU) @ 204.46/s (n=1000000)

実時間で4秒かかった。ユーザ時間3.2秒、システム時間0秒=合計3.2秒。1秒で(1000回のループを)312.21回実行できた
実時間で6秒かかった。ユーザ時間4.89秒、システム時間0秒=合計4.89秒。1秒で(1000回のループを)204.46回実行できた

どっちが速いかわかるよな?
0936デフォルトの名無しさん2007/06/07(木) 10:41:11
>>935
理解しますた。
use Benchmark qw(timethese) ;
timethese( 10000, { op1 => 'op1', op2 => 'op2' } ) ;
sub op1 {for(0..100){my@aa=(5 x 50)}}
sub op2 {map{my@aa=(5 x 50)}(0..100)}

↑
forとmap、ほとんど差が無くて実行するたびに結果が逆転してますた。

ベンチマーク便利だぬ
0937デフォルトの名無しさん2007/06/07(木) 10:56:10
perl -de0 にて
x map { $_ => $_*$_ } 1..3 # OK: 1 1 2 4 3 9
x map { "a$_" => $_*$_ } 1..3 # NG: syntax error
x map { "a$_" , $_*$_ } 1..3 # NG: syntax error
x map { ("a$_" , $_*$_) } 1..3 # OK: a1 1 a2 4 a3 9
x map { +"a$_" => $_*$_ } 1..3 # OK: a1 1 a2 4 a3 9
x map ("a$_" => $_*$_), 1..3 # NG: a0 1 2 3
x map +("a$_" => $_*$_), 1..3 # OK: a1 1 a2 4 a3 9
x map +{ $_ => $_*$_ }, 1..3 # ??: {1=>1} {2=>4} {3=>9}

やっぱりPerlキモい
0938デフォルトの名無しさん2007/06/07(木) 11:24:34
普通じゃん
0939デフォルトの名無しさん2007/06/07(木) 11:59:55
my @one;
$one[10001] = undef;
my @s = 0..10000;
sub op1 { my @two = @s ; }
sub op2 { @one = @s ; }
sub op3 { @one = 0..10000; }
sub op4 { my @two; $two[10001] = undef; }

Benchmark: timing 1000 iterations of op1, op2, op3, op4...
op1: 2 wallclock secs ( 1.87 usr + 0.00 sys = 1.87 CPU) @ 534.19/s (n=1000)
op2: 2 wallclock secs ( 1.86 usr + 0.00 sys = 1.86 CPU) @ 536.77/s (n=1000)
op3: 3 wallclock secs ( 3.55 usr + 0.00 sys = 3.55 CPU) @ 282.09/s (n=1000)
op4: 1 wallclock secs ( 0.15 usr + 0.00 sys = 0.15 CPU) @ 6666.67/s (n=1000)
(warning: too few iterations for a reliable count)

時間がかかるのは .. (範囲演算子)。
メモリの領域確保は誤差範囲。
メモリコピーは、まあそれなりのコスト。
0940デフォルトの名無しさん2007/06/07(木) 12:02:42
というか、メモリコピーが一番の時間コスト要因だな。
0941デフォルトの名無しさん2007/06/07(木) 12:19:48
流れの中すみませんが、printf で質問です。
何番目の引数を使う、という様な引数の交換はできるでしょうか?

PHP でゆうところの次のものです。
> printf( "答えは%2$d" , 10, 11, 12 );
> 結果: 答えは11
0942デフォルトの名無しさん2007/06/07(木) 12:23:16
つperldoc -f sprintf

試せばいいのに
$ perl -e 'printf( q{答えは%2$d} , 10, 11, 12 );'
答えは11
09439412007/06/07(木) 12:29:51
>>942
早速ありがとうございます。
うっ、できた…。 そうか "" の中では$が変数判定されるんだった :Drz。
09449252007/06/07(木) 17:22:41
誤解を招きやすいレスを付けて悪かった。
>>921を面白いと感じたのは、op1の方がop2よりも4割も速かったから。

以下のコードで確認したところ、範囲演算子の速度が違っているみたい。

use Benchmark;
timethese undef, {
test0 => sub { my @aaa=0..10_000; },
test1 => sub { my @aaa; my @bbb=0..10_000; },
test2 => sub { my @aaa; @aaa=0..10_000; },
test3 => sub { my @aaa=0..10_000; my @bbb=@aaa; }
};

Benchmark: running test0, test1, test2 for at least 3 CPU seconds...
test0: 3 wallclock secs ( 3.02 usr + 0.00 sys = 3.02 CPU) @ 194.37/s (n=587)
test1: 3 wallclock secs ( 3.46 usr + 0.00 sys = 3.46 CPU) @ 187.57/s (n=649)
test2: 3 wallclock secs ( 3.35 usr + 0.00 sys = 3.35 CPU) @ 88.06/s (n=295)
test3: 4 wallclock secs ( 3.41 usr + 0.00 sys = 3.41 CPU) @ 86.51/s (n=295)

左辺にmyが付かないと内部で配列のコピーが余分に1回発生してるような速度になってる。
0945デフォルトの名無しさん2007/06/07(木) 18:14:18
範囲リストをよそに作ってからコピーしてるんだろうな
0946デフォルトの名無しさん2007/06/07(木) 18:27:25
>>944
test0とtest1がなぜこんなに差が出るのか謎だな。
0947デフォルトの名無しさん2007/06/07(木) 19:05:01
参考

# pen4 2.4 colinux This is perl, v5.8.8 built for i386-linux-thread-multi
Benchmark: running test0, test1, test2, test3 for at least 3 CPU seconds...
test0: 3 wallclock secs ( 2.09 usr + 0.98 sys = 3.07 CPU) @ 447.56/s (n=1374)
test1: 3 wallclock secs ( 2.94 usr + 0.28 sys = 3.22 CPU) @ 445.03/s (n=1433)
test2: 3 wallclock secs ( 3.12 usr + 0.11 sys = 3.23 CPU) @ 234.37/s (n=757)
test3: 3 wallclock secs ( 3.03 usr + 0.13 sys = 3.16 CPU) @ 220.89/s (n=698)

pen4 3.0 This is perl, v5.8.4 built for i386-freebsd-64int
Benchmark: running test0, test1, test2, test3 for at least 3 CPU seconds...
test0: 5 wallclock secs ( 3.22 usr + 0.00 sys = 3.22 CPU) @ 538.41/s (n=1733)
test1: 3 wallclock secs ( 3.18 usr + 0.00 sys = 3.18 CPU) @ 531.81/s (n=1691)
test2: 5 wallclock secs ( 3.23 usr + 0.01 sys = 3.23 CPU) @ 255.69/s (n=827)
test3: 4 wallclock secs ( 3.16 usr + 0.00 sys = 3.16 CPU) @ 260.74/s (n=825)

# セロリンD 2.8 This is perl, v5.8.8 built for i386-linux-thread-multi
Benchmark: running test0, test1, test2, test3 for at least 3 CPU seconds...
test0: 4 wallclock secs ( 3.23 usr + 0.00 sys = 3.23 CPU) @ 645.82/s (n=2086)
test1: 3 wallclock secs ( 3.19 usr + 0.00 sys = 3.19 CPU) @ 640.13/s (n=2042)
test2: 3 wallclock secs ( 3.15 usr + 0.00 sys = 3.15 CPU) @ 331.11/s (n=1043)
test3: 3 wallclock secs ( 3.15 usr + 0.00 sys = 3.15 CPU) @ 320.95/s (n=1011)
0948デフォルトの名無しさん2007/06/07(木) 19:43:32
今北産業
0949デフォルトの名無しさん2007/06/07(木) 19:46:26
my@a = 1..100; なら@aを確保して直に1..100で初期化するように最適化されるけど、
my@a;@a=1..100; だと、@aを確保してから(1..100)を生成して、@aにコピーしてるんだろうな。
0950デフォルトの名無しさん2007/06/07(木) 19:56:19
ベンチマーク厨乙
0951デフォルトの名無しさん2007/06/07(木) 20:49:53
XEON 3G This is perl, v5.8.8 built for i686-linux
test0: 3 wallclock secs ( 3.19 usr + 0.00 sys = 3.19 CPU) @ 801.88/s (n=2558)
test1: 3 wallclock secs ( 3.20 usr + 0.00 sys = 3.20 CPU) @ 796.88/s (n=2550)
test2: 3 wallclock secs ( 3.18 usr + 0.00 sys = 3.18 CPU) @ 414.78/s (n=1319)
test3: 3 wallclock secs ( 3.17 usr + 0.00 sys = 3.17 CPU) @ 400.63/s (n=1270)
0952デフォルトの名無しさん2007/06/07(木) 21:43:01
速いCPUの自慢しやがって!
0953デフォルトの名無しさん2007/06/07(木) 21:56:39
C2Dとmacの結果も見たいです><
0954デフォルトの名無しさん2007/06/08(金) 12:17:03
質問です
gtk2-perl使ってるのですが、なんかいい開発環境ありますか?
今はgeditとlv使いながらやってますが関数追いかけるのが大変で…。
eclipseがいいのであれば使ってみようと思います。他におすすめなのがあればぜひ。
guiはglade使ってて不満はないです。
0955デフォルトの名無しさん2007/06/08(金) 12:24:05
男は黙ってvim
0956デフォルトの名無しさん2007/06/08(金) 14:32:33
WineでEmEditor
0957デフォルトの名無しさん2007/06/08(金) 15:50:19
エディタをここで聞くなよ
Linux板のエディタスレでやれ
0958デフォルトの名無しさん2007/06/08(金) 16:30:46
粘着君sage覚えたんだ
0959デフォルトの名無しさん2007/06/09(土) 19:36:05
もちろんそうよ
0960デフォルトの名無しさん2007/06/09(土) 23:53:32
Intel(R) Core(TM)2 CPU T7200 @ 2.00GHz This is perl, v5.8.8 built for
i386-freebsd-64int

Benchmark: running test0, test1, test2, test3 for at least 3 CPU seconds...
test0: 3 wallclock secs ( 3.22 usr + 0.00 sys = 3.22 CPU) @ 873.63/s (n=2812)
test1: 4 wallclock secs ( 3.17 usr + 0.00 sys = 3.17 CPU) @ 886.54/s (n=2812)
test2: 3 wallclock secs ( 3.20 usr + 0.00 sys = 3.20 CPU) @ 482.34/s (n=1545)
test3: 3 wallclock secs ( 3.16 usr + 0.00 sys = 3.16 CPU) @ 444.37/s (n=1406)
0961デフォルトの名無しさん2007/06/09(土) 23:59:32
Pentium(R) M processor 2.00GHz This is perl, v5.8.8 built for i386-freebsd-64int
Benchmark: running test0, test1, test2, test3 for at least 3 CPU seconds...
test0: 3 wallclock secs ( 3.20 usr + 0.00 sys = 3.20 CPU) @ 792.04/s (n=2537)
test1: 3 wallclock secs ( 3.20 usr + 0.00 sys = 3.20 CPU) @ 792.04/s (n=2537)
test2: 3 wallclock secs ( 3.20 usr + 0.00 sys = 3.20 CPU) @ 415.30/s (n=1327)
test3: 3 wallclock secs ( 3.20 usr + 0.00 sys = 3.20 CPU) @ 395.86/s (n=1268)

AMD Athlon(tm) 64 Processor 3200+ This is perl, v5.8.8 built for i386-netbsd-thread-multi
Benchmark: running test0, test1, test2, test3 for at least 3 CPU seconds...
test0: 4 wallclock secs ( 3.36 usr + -0.02 sys = 3.34 CPU) @ 744.91/s (n=2488)
test1: 3 wallclock secs ( 3.01 usr + -0.01 sys = 3.00 CPU) @ 744.67/s (n=2234)
test2: 3 wallclock secs ( 3.21 usr + 0.00 sys = 3.21 CPU) @ 395.64/s (n=1270)
test3: 3 wallclock secs ( 3.21 usr + 0.00 sys = 3.21 CPU) @ 361.68/s (n=1161)

AMD Athlon(tm) 64 Processor 3200+ This is perl, v5.8.8 built for i386-freebsd-64int
Benchmark: running test0, test1, test2, test3 for at least 3 CPU seconds...
test0: 3 wallclock secs ( 3.19 usr + 0.00 sys = 3.19 CPU) @ 517.96/s (n=1651)
test1: 3 wallclock secs ( 3.20 usr + 0.00 sys = 3.20 CPU) @ 515.43/s (n=1651)
test2: 4 wallclock secs ( 3.16 usr + 0.00 sys = 3.16 CPU) @ 267.72/s (n=845)
test3: 4 wallclock secs ( 3.19 usr + 0.00 sys = 3.19 CPU) @ 252.86/s (n=806)
何故か同じマザー使ってるのに、FreeBSD だと遅い…
0962デフォルトの名無しさん2007/06/10(日) 08:47:30
もうみんあ飽きてるというのに・・・
0963デフォルトの名無しさん2007/06/10(日) 14:30:47
ベンチマーク厨うざ
0964デフォルトの名無しさん2007/06/10(日) 18:19:35
qwとqqの違いってなんなんでしょうか?
0965デフォルトの名無しさん2007/06/10(日) 18:27:54
qq/foo bar baz/ #=> "foo bar baz"
qw/foo bar baz/ #=> ("foo","bar","baz")
0966デフォルトの名無しさん2007/06/10(日) 18:30:04
訂正
qq/foo bar baz/ #=> "foo bar baz"
qw/foo bar baz/ #=> ('foo','bar','baz')
0967デフォルトの名無しさん2007/06/10(日) 18:32:12
>>965
わかりました、ありがとうございます。
q//やqq/がラクダ本に載ってないということは、これらは最近追加された演算子という
ことなんでしょうか?
0968デフォルトの名無しさん2007/06/10(日) 18:35:09
>>967
p74
0969デフォルトの名無しさん2007/06/10(日) 18:55:49
>>963
貧乏人うぜぇ
0970デフォルトの名無しさん2007/06/10(日) 19:35:02
なんと的外れな煽り
0971デフォルトの名無しさん2007/06/10(日) 19:37:01
金持ちは黙ってろ
0972デフォルトの名無しさん2007/06/10(日) 19:50:34
人を指して貧乏人とか行ってる時点でレベルの低いやつだとまるわかり。
恥ずかしくないの?
0973デフォルトの名無しさん2007/06/10(日) 20:07:09
牛丼にたまごとお新香付けるオレはかなり貴族
0974デフォルトの名無しさん2007/06/10(日) 20:36:34
Perlの話をしろ糞ども
0975デフォルトの名無しさん2007/06/10(日) 20:43:13
>>972
本当にレベルが高いやつはスルーするので、
あなたもレベルが低いようですね。
0976デフォルトの名無しさん2007/06/10(日) 20:53:21
そういうあなたもw
0977デフォルトの名無しさん2007/06/10(日) 21:03:24
そういうあなたもw
0978デフォルトの名無しさん2007/06/10(日) 21:22:41
アイスのフタの裏を舐めないオレはかなり貴族
0979デフォルトの名無しさん2007/06/10(日) 21:32:51
フタ付きのアイスくうのは庶民
0980デフォルトの名無しさん2007/06/10(日) 22:11:17
フタの裏のアイスだけ食べるのが真の貴族。
0981デフォルトの名無しさん2007/06/10(日) 22:49:42
変なのがいつくようになっちまった
0982デフォルトの名無しさん2007/06/11(月) 00:14:43
open FH1, "hoge.txt"

はふつーにOKなのですが

my $FH2
open $FH2, "hoge.txt"

とかやると、エラーと言われます。ところが

open my $FH3, "hoge.txt"

これだとエラーとは言われません。なんででしょう?
5.6の環境でやっててヘンだなーと思ってたんだが
5.8だとFH2のパターンでも何にも言われない
うーん、、、
0983デフォルトの名無しさん2007/06/11(月) 00:33:49
openの第一引数に変数を与えた場合の挙動はたびたび変更されてるから、
perlfuncの古いの引っ張ってきて読んどくといいよ。
0984デフォルトの名無しさん2007/06/11(月) 01:15:50
>>983
なるほど、そういうことですか
まあ普通にFH1のように使えばいいんでしょうが

関係ないけど $# って廃止されるんですね
scalar(@array) とかで代替できるから問題ないんでしょうが
廃止しようとする意図がよくわからない
0985デフォルトの名無しさん2007/06/11(月) 01:41:39
>>972
「本当に○○な奴はそれを言わない」というたぐいの思い込みを前提に物を言うほうが、
よっぽど恥ずかしいと思います :-)

そういう前提を持つと、「言った時点でそいつは○○ではないことになる」から、
「言われたくないことを言われたくない人に言われる」ことが絶対無くなって、凄く気が楽になる、
それはわかりますが、かっこ悪い逃げ方にもほどがあります :-)
0986デフォルトの名無しさん2007/06/11(月) 03:34:48
次スレということにしたいのです。

Perlについての質問箱 31箱目
http://pc11.2ch.net/test/read.cgi/tech/1181500187/
0987デフォルトの名無しさん2007/06/11(月) 04:52:06
>>982
solaris の 5.6.0 にてやってみたが、エラー出ないぞ。
5.6.0 叩いているつもりで、5.005 呼んでるとかないか?
0988デフォルトの名無しさん2007/06/11(月) 10:30:07
>>984
Perlも6でいよいよ終わりっぽいな。
要素数と最大の添え字番号じゃPerlとRubyくらい違うだろうに。
0989デフォルトの名無しさん2007/06/11(月) 14:18:55
>>987
エラー隠蔽者のチンポしゃぶり乙!
0990デフォルトの名無しさん2007/06/11(月) 18:33:25
マターリ
0991デフォルトの名無しさん2007/06/11(月) 22:49:16
>>985
それはまじれすなのか
0992デフォルトの名無しさん2007/06/12(火) 21:26:51
ちんこ
0993デフォルトの名無しさん2007/06/15(金) 02:00:51
まずはここを使い切ろう
0994デフォルトの名無しさん2007/06/15(金) 04:01:48
\
0995デフォルトの名無しさん2007/06/15(金) 04:03:05
\
0996デフォルトの名無しさん2007/06/15(金) 04:30:47
__END__
0997デフォルトの名無しさん2007/06/15(金) 05:25:17
=head1 NAME

pc11::tech - bbs for programers
0998デフォルトの名無しさん2007/06/15(金) 08:47:11
syntax error at line >>1-1000
レス数が950を超えています。1000を超えると書き込みができなくなります。