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


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

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



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

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

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

www.perl.org/get.html
● 2006/12/21現在の最新版: 5.8.8
● 2006/12/21現在の開発版: 5.9.3

前スレ
Perlについての質問箱 28箱目
pc8.2ch.net/test/read.cgi/tech/1162273941/

リンク集は>>2-3
過去スレは>>4

669 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 15:29:03 ]
SMTPを使わず/usr/lib/sendmail等から送る場合sendmailをパイプでopenする
手法がよく使われていますがこれらを実現出来るCPANに登録されているスタンダードな
モジュール名を教えていただけませんでしょうか。

670 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 15:39:30 ]
途中で手入力してるしw
開発部署のあちこちのデスクから、こんなん聞こえてきたらコエー。

671 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 15:56:45 ]
>>669
search.cpan.orgでsendmailをキーワードに検索すればいくつか出てくるので
適当に好きなのを使えばいいんじゃないか。


672 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 20:43:09 ]
>>665
この後に、オフィスPCに切れて投げ壊してる外人おっさんの動画を

673 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 21:31:26 ]
>>665
That was eazy.txt
ワロス

674 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 21:57:07 ]
Thank you って言ったらそれまで入ってもうて、必死で消してるw

675 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 22:00:56 ]
Undoできないのかな

676 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 22:03:04 ]
5分もかかってまだ open ( INFO しか入力できてねぇしw

677 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 22:12:07 ]
いや、INFO は結局入力できず手で入れてたし。



678 名前:デフォルトの名無しさん mailto:sage [2007/02/14(水) 22:39:15 ]
検索結果を表示させるだけのものなんですが、大文字小文字の区別がつきません
297 if ( $line =~ /\Q$in{$form1}\E/ ) {
を   if ( $line =~ i/\Q$in{$form1}\E/ ) {  にするとエラーが出てしまいます

syntax error at test.cgi line 297, near "$in{"
syntax error at test.cgi line 297, near "/ )"
syntax error at test.cgi line 300, near "}"
Execution of test.cgi aborted due to compilation errors.

292 sub umu1 {
293 open(IN,"$file"); #csv読み込み
294 while(1) {
294 $line = <IN>; #csvの行を&lineに代入
295 @data = split( /,/ ,$line ); #@data[0~]にcsv行を個別に代入
296 if ( $line eq "" ) { last; } #無限ループ終了条件
297 if ( $line =~ /\Q$in{$form1}\E/ ) {
298 print "$data[0]$data[1]"."<br>"."\n";
299 }
300 }
301 close(IN);
302 }

679 名前:678 mailto:sage [2007/02/14(水) 23:04:54 ]
自己解決しました。なんともお粗末なミスで・・・

680 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 00:37:59 ]
WWW::Mechanizeを使用しているのですが、RecIE(www.h7.dion.ne.jp/~umiumi/)
のように、IEにhtmlの内容を表示させながらhtml解析する方法ってないでしょうか?
今はcontentで一旦ファイルに保存して、systemでIEを起動させ表示させています。


681 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 10:04:00 ]
sub foo {
処理
return(@A,@B,@C)
}

としている関数で、
(@A,@B,@C) = &foo()
↑のような感じで返り値を配列個別に受け取りたいんですが、
Perlでは可能なんでしょうか?


682 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 10:16:08 ]
sub foo {
hoge;
return \(@A, @B, @C);
}

($refA, $refB, $refC) = foo;

こういう感じにリファレンス渡しにしないといけない。

683 名前:デフォルトの名無しさん mailto:sage [2007/02/15(木) 11:20:31 ]
>>680
Win32OLE
JavaScriptみたいなタグの分解も一緒にやってくれる

684 名前:デフォルトの名無しさん mailto:sage [2007/02/16(金) 04:43:05 ]
Win32::GUIのListviewで行ごとに色を変えるにはどうしたらよいでしょうか?


685 名前:デフォルトの名無しさん mailto:sage [2007/02/16(金) 14:44:56 ]
>>684
カスタムドローかオーナードロー
ってかWinAPI使うならCとかC++のが断然楽だぞ?

686 名前:デフォルトの名無しさん mailto:sage [2007/02/16(金) 17:14:27 ]
>>685
カスタムロードがいいみたいですね。
Perlのサンプルコードはぜんぜんないようで。。。
困った

687 名前:デフォルトの名無しさん mailto:sage [2007/02/16(金) 17:21:16 ]
ドロー



688 名前:デフォルトの名無しさん mailto:sage [2007/02/16(金) 17:36:30 ]
>>686
Win32::GUIって自分でウィンドウメッセージ取れないのか?
取れるならC,C++のサンプルコードと同じようにできるが
できないなら知らん

689 名前:デフォルトの名無しさん mailto:sage [2007/02/16(金) 19:01:28 ]
perl-win32-gui.sourceforge.net/cgi-bin/wiki.cgi?Change_Listview_Item_Color

サンプルコードは一応あるんだが、エラーが出て動かん。
カスタムドローの構造が古いのかな???
バイナリをいろいろ変換してるがよう分からんわ。

690 名前:デフォルトの名無しさん mailto:sage [2007/02/17(土) 15:11:52 ]
>>689
substr( $lParam, 48, 8, $clrText);

substr(unpack("P56", pack("L",$lParam)), 48, 8, $clrText);
にするとエラーは無くなるが、文字色は変わらない。

要するに、$lParamはNMLVCUSTOMDRAW構造体へのポインタ
cf. www.kumei.ne.jp/c_lang/sdk3/sdk_261.htm
であって、この構造体の中身を書き換えればいいように思えるのだが、
Perl でどうすればいいのかわからない。

691 名前:デフォルトの名無しさん mailto:sage [2007/02/18(日) 17:54:02 ]
CUIサーバープログラムで裏で1秒ごとにデータファイルを読み込みながら
クライアントにその時々の最新データを返すにはどのようにすればいいのでしょうか?

&readdata
sub readdata{

  after(1000,&readdata);
}

692 名前:デフォルトの名無しさん mailto:sage [2007/02/18(日) 17:55:11 ]
Tkで使うafterのようなものがあるのでしょうか?
ということの説明のためにコードを書いていたのですが、途中で投稿してしまいましたorz



693 名前:デフォルトの名無しさん [2007/02/18(日) 19:55:10 ]
sleep(1)

694 名前:デフォルトの名無しさん [2007/02/18(日) 20:26:34 ]
ある数値が何行にもわたって書いてあるいくつかのテキストを読み込んで
指定した列の数値の平均を割り出すプログラムをperlで作りたいんですが
どのように作ればいいんでしょうか?
入門サイトなどをいくつか見てきましたが
これといったお手本が無く、行き詰まってしまいました。
お願いします。

695 名前:デフォルトの名無しさん mailto:sage [2007/02/18(日) 20:47:41 ]
>>694
もちっとデータに具体性を出してほしい
例を上げて

696 名前:デフォルトの名無しさん [2007/02/18(日) 20:56:22 ]
>>695
レスありがとうございます。
例というか、実際に使うテキストファイルの最初の5行をそのままコピペしますが

0; 133.44; 3180
1; 134.76; 3180
2; 168.35; 3180
3; 141.58; 3180
4; 157.86; 3180
5; 176.92; 3180

こうなってます。
一番左は列数、二列目が平均値を出したいデータ、三列目は無視してください。
二列目の数値の平均値が出したいのです。
ひとつのテキストファイルに44640行、
こんな感じの数値がずらずらと並んでいるので
二列目の数値を全部足して44640で割る、ということがしたいんです。

697 名前:デフォルトの名無しさん mailto:sage [2007/02/18(日) 21:11:30 ]
とりあえず
・ファイルをperlに読み込んで各行をループさせる
・一行の中で、2列目の数値を取り出す
といった操作が必要だけど、
ファイルの読み書きや、正規表現とか、まったく何も分からないの?



698 名前:デフォルトの名無しさん mailto:sage [2007/02/18(日) 22:01:45 ]
>>694
ちょうど最近それっぽい記事が出てた。
ttp://codezine.jp/a/article/aid/904.aspx
区切り記号が「,」か「;」の違いがあるとか微妙にちがうけど、
コレが理解できれば希望のスクリプトを書くのも出来るはず。
コピペだけですませようとしてるんなら無理だけど。

699 名前:デフォルトの名無しさん [2007/02/18(日) 22:02:02 ]
>>697
一応、基礎的なことはサイトを見て勉強してきたんで
正規表現のことや
ファイルを読み込んでコマンドプロンプトに内容を表示させたり
ファイルの作成、書き込みなどは理解しているつもりです。
ただそれらのことを組み合わせてプログラムを作るとなると
まだよくわからないんです。
もう明日中には完成させなきゃならないんで
できればヒントだけでもお願いしたいです…

700 名前:デフォルトの名無しさん mailto:sage [2007/02/18(日) 22:08:59 ]
こんな感じじゃね?試してないけど。

my $sum = 0;
my $i = 0;
for my $file (qw(unko1.txt unko2.txt)) {
 open my $fh, $file or die "開けん";
 while(<$fh>) { $sum += (/;\s*(-?\d\.\d);/)[0]; $i++; }
}
print "阿部怜治:", $sum / $i, $/;


701 名前:694 [2007/02/18(日) 23:30:17 ]
>>698.700
ありがとうございます。
もう少し頑張って明日試してみます。

702 名前:デフォルトの名無しさん mailto:sage [2007/02/19(月) 00:43:52 ]
じゃ模範的なperlで
perl -pae "$l++;$s+=$F[1]}{$_=$s/$l" input.txt

703 名前:デフォルトの名無しさん mailto:sage [2007/02/19(月) 00:58:40 ]
perl -F";" -lane '$t+=$F[1]; END{print $t/$.}' input.txt

704 名前:デフォルトの名無しさん mailto:sage [2007/02/19(月) 04:15:19 ]
>>702
$F[1]}{

}{
って何してるの?

705 名前:デフォルトの名無しさん mailto:sage [2007/02/19(月) 04:59:09 ]
>>704
$ perl -h
-n assume "while (<>) { ... }" loop around program
-p assume loop like -n but print line also, like sed

-p は while (<>) { ... print; } で囲まれる。

706 名前:デフォルトの名無しさん [2007/02/19(月) 05:26:43 ]
挙動的に同じって意味だと思ってたら、
本当にプリプロセッサのように囲まれるのね

707 名前:デフォルトの名無しさん [2007/02/19(月) 18:41:27 ]
if ($a) { print $a; }
この書き方と

print $a if $a;
この書き方では何か違いはあるのでしょうか



708 名前:デフォルトの名無しさん mailto:sage [2007/02/19(月) 18:44:48 ]
見た目

709 名前:デフォルトの名無しさん [2007/02/19(月) 20:24:07 ]
すいません、質問です。
大体5万行くらいの大きさのテキストファイルから、
重複している行
(連続して重複してるわけでは無く、内容が同じ行が
とびとびに存在してる)を一つのこして、残りは省く
というスクリプトを書く場合、
1)1行目はそのまま書き出す
2)2行目は1行目と比較して、同じだったら書き出さない、違ったら書き出す
3)3行目は1行目と比較して、同じだったら書き出さない、違ったら2行目と比較して、、、
4)以下繰り替えし

このようなスクリプトしか無いのでしょうか?
処理に非常に時間がかかるので、何か良い方法があったら、御教示下さい。


710 名前:デフォルトの名無しさん mailto:sage [2007/02/19(月) 20:31:36 ]
>>709
「perl 重複」でぐぐればいろいろテクニックが見つかる

711 名前:デフォルトの名無しさん mailto:sage [2007/02/19(月) 20:36:03 ]
>>709
5万行くらいなら全部ハッシュテーブルに詰め込んでも大丈夫そうだが

順序崩していいならソートしてから重複を除くのがいいだろう

712 名前: ◆TWARamEjuA mailto:sage [2007/02/19(月) 20:38:10 BE:2613683-2BP(6811)]
1. 1行目の内容をハシュのキーに詰め込む。
while (<$fh>) {
 $hash{$_} = 1;

2. 読み込みが終わったら、keyを書き出す。
 print for keys %hash;


1-1. 読み込んだ順に書き出したい時。
my $line;
while (<$fh>) {
 $hash{$_} = [$_, ++$line];

1-2. 先に読み込んだ方を有効にしたい時。
 $hash{$_} = [$_, ++$line] unless $hash{$_} ;

2-1. 読み込みが終わったら、sortしながらkeyを書き出す。
 print for sort $hash{$a}->[1] <=> $hash{$b}->[1], keys %hash;

脳内妄想なので、補完よろしこ(照)

713 名前: ◆TWARamEjuA mailto:sage [2007/02/19(月) 20:39:43 BE:1742382-2BP(6811)]
ん、、、リファレンスにしなくても良かったか(呆)

714 名前:709 mailto:sage [2007/02/19(月) 20:42:52 ]
>>710-712
ありがとうございます。ハッシュテーブルを使う方法は、
全く考えてませんでした(というか今迄使ったことが無かったので)

とりあえず、ハッシュテーブルの使い方を勉強してきます。

715 名前:デフォルトの名無しさん mailto:sage [2007/02/19(月) 20:57:05 ]
perl -ne 'print if not $seen{$_}++;'
でいいだろ。

メモリ足りないようならtie()使ってDBMファイルをワークに使えばよし。

716 名前:デフォルトの名無しさん mailto:sage [2007/02/19(月) 20:58:32 ]
Perl やっててハッシュを使ったことが無いとな

717 名前:デフォルトの名無しさん mailto:sage [2007/02/19(月) 22:07:13 ]
今までperlやってなかったんだろ



718 名前:デフォルトの名無しさん mailto:sage [2007/02/19(月) 22:16:49 ]
無名(?)のBLOCKで、
{} ←中身が空だとエラーになるんだけど、素のBLOCKは使ってもいいのか、
使えるが推奨されてないのか、perl的でないのか、どんな感じなんでしょう?

719 名前:デフォルトの名無しさん mailto:sage [2007/02/19(月) 22:28:43 ]
WindowsでNMAKEが必要なモジュールのインストールについて質問。
Windows2000では問題がなかったのに、vistaになってDBIとかがインストールに失敗する。
どうすれば回避できる?

720 名前:デフォルトの名無しさん mailto:sage [2007/02/19(月) 22:41:06 ]
>>719
そのエラーメッセージで言われてるところを直せばインストールできるんじゃないか

721 名前:デフォルトの名無しさん mailto:sage [2007/02/19(月) 22:46:44 ]
>>718
$hoge = {};
何か見えてこないかい?

それからperlrefのMaking Referencesの3番辺りに目を通すといいと良いかと。
…スクリプティング言語資料室さんの訳、そこの所間違ってるかな
> 一方、ハッシュではなくBLOCKへのリファレンスを返すのであれば、

722 名前:718 mailto:sage [2007/02/19(月) 23:08:43 ]
>>721
おー、ありがとう。丁度良い書き方が見つかりました。

{}だけ書いて中身は後で書きたいときに、エラーになるのが気持ち悪かったのですが、
{;}という方法があったか!

723 名前:デフォルトの名無しさん mailto:sage [2007/02/20(火) 16:33:08 ]
最近対策済みのスパムに漏れて書き込みが散見されるので
if ($comment !~ /(\x82[\x9F-\xF2])|(\x83[\x40-\x96])/) {&er_("cannot write!","1");}

ここを変えたいと思います。
ここをひらがなの「あ」〜「ん」が含まれていなければ、という意味にしたいのですが、

「あ」は 82A0
「ん」は 82F1 です。

(\x82[\x9F-\xF2])|(\x83[\x40-\x96])
これをどう治せばいいのでしょうか?

↑正規表現とマッチングを理解していないので、
これのはっきりとした意味がわかっていません。
たぶんカタカナまで含まれていると思うのですが・・。

724 名前:デフォルトの名無しさん mailto:sage [2007/02/20(火) 16:51:19 ]
>>723
sjisか。
| の左側がひらがなで、右側がカタカナでしょ。
ひらがなだけよけたいなら、

$comment !~ /\x82[\x9F-\xF1]/

でいいんじゃね?

725 名前:723 mailto:sage [2007/02/20(火) 17:04:41 ]
>>724
ありがとうございます。
ひらがなのみのフィルタで無事動きました。

726 名前:中の人 mailto:sage [2007/02/21(水) 00:01:39 ]
>>721
すまん確認した。
どこをどうすればこういう勘違いをするんだかわれながら不思議だ。

つーことで今週末までをめどに修正しておきます。


727 名前:デフォルトの名無しさん mailto:sage [2007/02/21(水) 21:57:48 ]
なるほどねぇ



728 名前:688 mailto:sage [2007/02/21(水) 22:09:52 ]
>>690
自己解決しました。

my $CopyMemory=new Win32::API("kernel32", "RtlMoveMemory", "NPI", "V");
defined $CopyMemory or die "Cant find CopyMemory";

$CopyMemory->Call($lParam+48, $clrText, 8);


729 名前:デフォルトの名無しさん mailto:sage [2007/02/21(水) 22:18:46 ]
>>728
訂正688→686

730 名前:デフォルトの名無しさん mailto:sage [2007/02/21(水) 23:31:13 ]
>>728
substr( $lParam, 48, 8, $clrText);

$object->TextColor( (unpack('II',$clrText))[1] );
$object->TextBkColor( (unpack('II',$clrText))[0] );
にする方が楽だと思うけど、自己解決おめでと。

731 名前:686 mailto:sage [2007/02/22(木) 00:45:28 ]
>>730
それじゃ、Selectすると全部色変わっちまうぜよ。

732 名前:690 mailto:sage [2007/02/22(木) 01:35:07 ]
>>728
自己解決おめでとう。
>>689
substr( $lParam, 48, 8, $clrText);
の意味について考え直したのだが、以前のバージョンのActivePerl では
「裏仕様」として、「$lParam がポインタと考えられる場合は、間接指定
されたアドレスの文字列(バイト列)を操作し、そうでなければ$lParam
そのものを操作する」というのがあったのではないだろうか。
>>689 のソースを読む限り、そうとしか思えない。
 ところが、この「裏仕様」は危険であるし、安全確実な間接アドレス指定方法
が手当てされたから、いつかのバージョンで廃止されたんだろうね。


733 名前:デフォルトの名無しさん mailto:sage [2007/02/22(木) 16:07:47 ]
if( $ENV{REMOTE_ADDR} eq ’’ )
ってありえるのでしょうか?

734 名前:デフォルトの名無しさん mailto:sage [2007/02/22(木) 16:26:33 ]
>>733
CGIとかで動かしてるなら鯖の仕様次第だし
普通にコマンドラインから実行すれば空になる

735 名前:デフォルトの名無しさん mailto:sage [2007/02/22(木) 19:59:42 ]
$comment に http の文字が5つ以上あるとエラーを出したいのですが、
正規表現でのチェックはどうすればいいのでしょうか?

if( $comment /~ (.*http.*http.*http,*http,*http) ) { error(); }

こんな感じでしょうか?orz

736 名前:デフォルトの名無しさん mailto:sage [2007/02/22(木) 20:46:31 ]
if ($comment =~ /(.*http){5}/s) { error(); }

737 名前: ◆TWARamEjuA mailto:sage [2007/02/22(木) 21:22:57 BE:5227968-2BP(6811)]
print "error" if $comment =~ /http/g > 4;
 だめだった。。。

print "error" if scalar @{[$comment =~ /http/g]} > 4;
 桶だった。。。

詳しい人の解説キボンヌ(照)



738 名前:脱帽 mailto:sage [2007/02/22(木) 21:26:24 ]
スカラーだと真か偽しか返さないから

739 名前:脱帽 mailto:sage [2007/02/22(木) 21:27:58 ]
スカラーの場合は真か偽しか返さないからじゃ

740 名前:デフォルトの名無しさん mailto:sage [2007/02/22(木) 21:44:26 ]
スカラーコンテキストでマッチした数が返ってくるのは置換の s///g の場合。
なので、もしそういう風に書きたいのなら

print "error" if $comment =~ s/http/http/g > 4;

とか書くといいかも。

741 名前:デフォルトの名無しさん mailto:sage [2007/02/22(木) 22:04:23 ]
なるほどねぇ

742 名前:735 mailto:sage [2007/02/22(木) 22:24:08 ]
if($comment =~ s/http/http/g > 4){ &er_('cannot write!');}
これでいけました。

s/hogehoge/fugafuga/gの s と g の意味がわからなかったのですが、
調べて理解できました、ありがとうございます。

743 名前:デフォルトの名無しさん mailto:sage [2007/02/23(金) 13:36:53 ]
WindowsXP + ActivePerl 5.8.8 build 820 です
こちらは初めてです、29箱目ということで既出質問だったらすみません

上記環境で モジュール Encode が threads と同時に上手く働きません
perl素人の自分なりに調べた結果、Encode モジュールはスレッドセーフでは
ないのではないかと思い始めたのですが、それで間違いないでしょうか?
それとも私が何か大事なお約束や呪文を忘れているのでしょうか

また、スレッドセーフで無かった場合、各スレッド内で文字コード変換を
行いたい場合、皆さんはどのようにしているでしょうか

744 名前:デフォルトの名無しさん mailto:sage [2007/02/23(金) 14:04:52 ]
>>743
適当にぐぐったらこういうのがあった。

ttp://www.nntp.perl.org/group/perl.perl5.porters/2007/02/msg120729.html

確かに試すとたまにおかしな結果になる。ちなみに手元のバージョンは
v5.8.8 built for i486-linux-gnu-thread-multiだった。

マニュアル見てもthread-safeであるとは書いてないし、原則は明記されて
なければunsafeと思えだから間違ってはいないのだろう。

で、俺はスレッドでEncode使った経験はないからなんともいえないのだが、
普通に考えたら適当なshared variableでlockかけてから使うぐらいしか
ないのではないだろうか。


745 名前:743 mailto:sage [2007/02/23(金) 14:22:08 ]
>>744 返信ありがとうございます

確実に再現性のある最小コードを続いて投稿…と思ったのですが上手くいかずorz
自分の考え違いだったかもと思っていたところでした

URL 先のコードを試した結果、私の環境でもおかしな結果を不規則に起こしました

再入しないようにとりあえず自衛していく方向でいってみます
ありがとうございました

746 名前:743 mailto:sage [2007/02/23(金) 16:42:34 ]
他のモジュール内でもEncode使っているのが多くありそうですね

PerlIO layer での :encoding(〜) とか
HTTP::Message の decoded_content とか便利だなーとガシガシ使っていたので
どんどん泥沼のソースになっていきましたorz

747 名前:デフォルトの名無しさん mailto:sage [2007/02/23(金) 16:45:17 ]
よく使われる奴はthread safeにして欲しいね




748 名前:デフォルトの名無しさん mailto:sage [2007/02/23(金) 22:14:02 ]
小飼氏(メーリングリスト)に投げてみたらいいんじゃないかな。
つーか投げてほしい。

749 名前:デフォルトの名無しさん mailto:sage [2007/02/23(金) 22:54:10 ]
blogの感じからするとすごく暇そうなので「直せやおら」とか言うといいんじゃね?>Encode
メーリングリストはJcodeメーリングリストでok

750 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 02:14:26 ]
あのヒゲモジャのことだからギブミーpatchでかえされるに200ペソ

751 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 11:03:22 ]
それはひどい>ギブミーpatch


752 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 13:51:21 ]
なんの解決にもならないw>ギブミーpatch

753 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 14:57:03 ]
>>751-752
なにが「ひどく」て「解決にならない」なの?
ライセンスがArtisticとGNU GPLのデュアルライセンスで、
どっちもソースが公開されているものなんだから不具合あったらソースを追って自分で改変するくらい当たり前じゃん。
おまえらはフリーライダーなの?それともそれをやるだけの能力がない低脳なの?


754 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 15:28:14 ]
これは酷い混じれ酢だ

755 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 17:43:38 ]
少なくとも小飼氏よりは低能間違い無しです><

756 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 20:38:11 ]
patchが作れるなら人に頼らないしメールも送らないってば。

757 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 20:55:47 ]
「ギブミーpatch」といわれたら、「無理!」って返事すればいいだけ。

キラクニヤレヤ〜♪



758 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 22:05:02 ]
(´・ω・)

759 名前:デフォルトの名無しさん [2007/02/24(土) 23:26:36 ]
質問です。
浮動小数点計算をループでしていてその結果を出力したら、
あるタイミングから#INDというのが出力されました。
これは一体なんでしょうか、、、

760 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 23:35:56 ]
不定値(正負の無限大 or NaN)
0除算してるんじゃね?

761 名前:デフォルトの名無しさん [2007/02/24(土) 23:48:49 ]
>>760
レスありがとうございます。
数値扱いされてないのでしょうか?
具体的なコードはこんなかんじなんですが、、


my $a = -0.1382 ** 0.000212494687632809;
my $temp = -0.1382;
my $b = $temp ** 0.000212494687632809;

これだと$aはちゃんと出力されるんですが、$bは-1.#INDと出力されます。。

762 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 00:11:04 ]
>>759
indefinite

763 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 00:27:05 ]
>>761
"**"は"-"より強いので
-0.1382 ** 0.000212494687632809

-(0.1382 ** 0.000212494687632809)に等しい。

764 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 01:53:36 ]
>>761
Math::BigFloat

765 名前:デフォルトの名無しさん [2007/02/25(日) 02:10:48 ]
>>762
>>763
>>764
レスありがとうございます。明日にでも試してみたいと思います。

766 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 12:00:00 ]
(´・ω・)12時

767 名前:デフォルトの名無しさん mailto:sage [2007/02/25(日) 19:23:35 ]
(´・ω・)時報スクリプトを作ってみました..

#!/usr/bin/perl
use WWW::Mechanize;
$mech = WWW::Mechanize->new(agent => 'Mozilla/4.0 (MSIE 6.0;)');
while(1){
my(@t) = localtime(time);
unless( $t[1] == 59 && $t[0] > 20){sleep(30);next;}
$mech->get($ARGV[0]);
$mech->field("MESSAGE" => "時報");
$mech->click();
(@t) = localtime(time);
sleep(60-$t[0]);
$mech->click();
}



768 名前:デフォルトの名無しさん [2007/02/27(火) 20:41:51 ]
日本語PDF作るモジュールのお薦めってありますか?
PDFJ?


769 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 22:40:04 ]
PDFJ


770 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 00:10:35 ]
$input=<STDIN>;
$input=~s/\n//;

print "$input";

コマンドラインから「\n\n」と入力した場合に
「\n\n」と出力されるのではなく、改行2個が出力されるようにしたいんですが
どうすればいいですか?

771 名前:デフォルトの名無しさん [2007/02/28(水) 00:17:23 ]
自力でs/\\n/\n/g;とするかevalするか

772 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 00:24:39 ]
>>771
わかりました。ありがとうございます。

773 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 00:52:29 ]
>>771,772
evalは安易に使うとコマンド実行も出来ちゃうので正規表現にしとけ。
どうしてもeval使う場合は入力チェックしないと危険よ

774 名前:770 mailto:sage [2007/02/28(水) 01:14:01 ]
>>773
アドバイスありがとうございます。
自分でちょっとしたテキスト処理をやりたいだけなので大丈夫です。
\< や \/ や \. などの入力が入った場合、その都度
s/\\\</\</;
s/\\\./\./;
を書かなければいけないのでevalにします。ありがとうございました。

775 名前:768 mailto:sage [2007/02/28(水) 13:05:37 ]
>769 サンクス。
自由度がありすぎて面倒な部分もあるんだけど、
やっぱPDFJでいってみます。



776 名前:デフォルトの名無しさん [2007/02/28(水) 16:35:41 ]
質問です 頓珍漢だった笑ってください

perlはCの #include に相当する機能はあるのでしょうか?

今、Perlで統計解析の処理をしています。解析手法ごとに異なったスクリプト
を作っています。

入出力部分が複雑なんでここの部分と全体で使える共通サブルーチンだけ切り出して
別ソースにして、実行時に組み込んで使いたいのですが、どうも旨くゆきません。

ぐぐったりしてみましたが、Use、Requireの話しか検索できません。何か単純に
Includeする方法は無いのでしょうか?




777 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 16:48:38 ]
>>776
そう難しくないからモジュールにしてuse使うべきだな。




778 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 16:48:43 ]
  ァ  ∧_∧ ァ,、
 ,、'` ( ´∀`) ,、'`
  '`  ( ⊃ ⊂)  '`


779 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 16:49:14 ]
 ははは      
   ∧_∧                もうダメ      
   ( ´∀`)                 ∧_∧          モウ カンベン
.  ( つ ⊂ )     ヒヒヒヒ         (´∀` ,,)、 あははは    シテクダサイ
   .)  ) )  ○   ∧_∧ ,     , へ,, へ⊂),    ∧_∧ ○,
  (__)_)⊂ ´⌒つ´∀` )つ   (_(__)_丿  ⊂(´∀`⊂ ⌒ヽつ


780 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 16:52:53 ]
requireで問題なくできそうだけど駄目なんかな

781 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 17:02:56 ]
目線を高くしてオブジェクト指向にしたらどうだ?

782 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 17:07:13 ]
776はrequireやuseの説明を読んでないのではないのでは?
includeとスペルが違うからって脊髄反射したのか?
そうでないのなら、ますはrequireでは駄目だった点を質問文につけないと回答者は答えようがないぞ

783 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 17:08:32 ]
すまん
×776はrequireやuseの説明を読んでないのではないのでは?
○776はrequireやuseの説明を読んでないのでは?


784 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 17:11:40 ]
名前空間の問題とかあるし、普通にモジュール作るのがいいと
思うけどな。よほどこったことやるんじゃなけりゃ、Exporter
使えば一発だし。


785 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 17:14:16 ]
>>776は最後に1;を入れ忘れてると見た

786 名前:笑われた 776 mailto:sage [2007/02/28(水) 17:22:05 ]
すみません確かにRequireに関して真面目に読んでいないです

Cの#includeのつもりだったので、

------------ 今まで ------------

初期の宣言など・・・

open(FP, $filename) or die($filename);

while(<FP>) {
$hash{$key} = hoge;
}


------------ 変更 ------------


初期の宣言など・・・

require 'other.pl';

&sub($filename, \%hash);


と変更しただけなんですが・・・・実行時に



787 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 17:25:10 ]
ワッフルワッフル!!



788 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 23:16:02 ]
単純に定数の扱いがやっかいかな。perlは。

789 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 01:53:41 ]
use constant FOO => 'bar';

use Readonly;
Readonly my $HOGE => 'fuga';

こういうのでいいじゃん。

790 名前:デフォルトの名無しさん [2007/03/01(木) 08:05:44 ]
PerlでCPANによるモジュールのインストールが失敗します。
install LWP::Simple
....
BEGIN failed--compilation aborted at /System/Library/Perl/Extras/5.8.6/darwin-thread-multi-2level/HTML/TokeParser.pm line 12.
Compilation failed in require at ../blib/lib/HTML/Form.pm line 116.
html/form-param.......dubious
Test returned status 2 (wstat 512, 0x200)
DIED. FAILED tests 1-24
Failed 24/24 tests, 0.00% okay
....

どなたかお助けを。
環境:MacOS X 10.4 Tiger, perl 5.8.6






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

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

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