CGIに依存しないPerlの話題一般
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
2001/05/31(木) 21:49ID:bKRSBFew・モジュール、オブジェクト指向プログラミング
・Perl6や.NET対応など
・各種GUIツールキット(Perl/Tk, Gtk-Perlなど)
・他言語による拡張(Inline::*, XS, Swigなど)
についてマターリと語り合うスレッドです。
#CGI関連の話題は、なるべく専用スレッドで。
0658名無しさん@お腹いっぱい。
02/03/31 20:19ID:T8l4eNTu@ARGV から与えたファイルの中身を(行単位でなく)スカラー変数の
中に押し込んで文字列置換をしたいのですが、今までだと
while(<>){ $data = "$data$_" }
とやっていました。もっとスマートなやり方は無いでしょうか?
(きっとあるはず・・・)
0659nobodyさん
02/03/31 20:33ID:???0660名無しさん@お腹いっぱい。
02/03/31 20:44ID:???ヒントをありがとうございました。
$_=join '',<>; で逝けました。
0661nobodyさん
02/04/01 14:56ID:s5HvuRgHぐわーっ
"Comprehensive Java Archive Network"って有ったら欲しいな。マジで。
0662nobodyさん
02/04/02 08:00ID:RKDNLMgYワラタ
2日になったのに残ってる…と思ったらあちらさんはまだ1日か。
0663あぼーん
NGNG0664nobodyさん
02/04/05 03:45ID:4R486XR6Perlの話題はやっぱこっちかなと思ったので。
早速ですが、拡張正規表現の(?>パターン)の使い方が分かりません。
Perl5から実装されているはずなのですが、らくだ本にも載ってません。
少ない情報から使い方を判断するに、
m/(?>パターン1)パターン2/ だと、
パターン1にマッチしたもの以外でパターン2にマッチしたもの
のような感じだと思うのですが違いますか?
0665nobodyさん
02/04/05 08:13ID:???> 最短マッチを行う独立した部分正規表現です。このパターンにマッチした部分の
> 文字列は、(?>パターン)のあとのマッチ対象からは除去されます。これを利用
> すると、マッチしないパターンの識別が高速化されます。
0666664
02/04/05 09:46ID:Qaev8skvでも使い方まで載ってないんだなぁ。
0667nobodyさん
02/04/05 09:58ID:???削除するかもってことだから、使わないのが吉かと。
使い方はperlreを参照。
http://www.perldoc.com/perl5.6.1/pod/perlre.html#(-%3epattern)
0668nobodyさん
02/04/05 10:02ID:???0669nobodyさん
02/04/05 10:07ID:???ケコーン!
↑これが一発で変換できてしまうのが悲しい。
2ちゃんに書けば書くほどATOKがバカになっていく。
0670nobodyさん
02/04/06 01:51ID:XOUDqeQ1SendToにPerlスクリプトを入れてバッチ処理みたいなことを
させたりということはできないんですか?
0671nobodyさん
02/04/06 05:23ID:???実際にわたしはそれをやっていますが、できなかったの? 実際にやってみたの?
やったかどうかも書いてないが、ネタか?
0673nobodyさん
02/04/07 00:32ID:1v+8pn8Gちなみにwin2kなんだけど
関連付けても出来なかったんだけど?
0675673
02/04/07 00:35ID:???0677nobodyさん
02/04/07 00:38ID:???@hogehoge.pl %*
とか
@perl hogehoge.pl %*
でもいいけど。
hogehoge.plは見つけられるようにしてくれ。
自分もバッチファイルで対応してるけど、これが普通なの?
いちいちバッチファイル作るの面倒くさい。
9x系の時は、PIFファイルを置いてたけど。。。
>>675
フォルダやファイルを引数にして、スクリプトを実行
させる場合は、SendTo が便利。
0680nobodyさん
02/04/07 11:16ID:???たとえば、アクセス数をグラフ化したり、ここの
http://www.yakin.cc/
転送量のグラフみたいなものだけど、こういうのの生成って
やっぱしCかなんかで書いているのかなぁ?
このあたりをお聞かせ下さい。
0682nobodyさん
02/04/07 11:24ID:???重いけど、難があるほどじゃないから、まぁいいか、と。
さんくす。
perl\bin\pl2bat.bat だよね。
これって、Perlスクリプト自体をバッチファイルに埋め込んで
実行させるのか。何か強引だな。
>>677
やっぱり単純にperlスクリプトを呼び出すだけの一行バッチファイルを
SendToフォルダに置くのが一番シンプルなのか。。。
参考
http://www.kt.rim.or.jp/~kbk/perl5.005/perlwin32.html#item_Perl
http://www.harukaze.net/~mishima/perl/faq/perlwin32faq/perlwin32faq4j.html#What_s_the_equivalent_of_the_she
0684nobodyさん
02/04/08 02:45ID:???Win2000用らしいけど
http://www.vector.co.jp/soft/winnt/util/se230667.html
試してないからどんなやつかは知らんが
説明みるかぎりバッチファイル化の手間を省いてくれそうな感じだが
0686nobodyさん
02/04/10 09:49ID:???0687nobodyさん
02/04/10 10:11ID:qeJW7E0pえーー(;´Д`)
0690nobodyさん
02/04/16 02:22ID:???全て0にするには、
$var = 0 ;
@array = (
[ $var , $var , $var ] ,
[ $var , $var , $var ]
) ;
は分かるのですが、列数と行数を与えて初期化
するのはどのようにしたらいいのでしょうか?
$retsu = 5 ;
$gyou = 3 ;
$var = 0 ;
・・・ここから行き詰まってます。
ヒントでもお教え下さいませ。
0691注意
02/04/16 02:28ID:???0692やさしいお兄さん
02/04/16 02:41ID:???ネタでも敢えて...
$zero= 0; $col= 5; $row= 2;
$rec= [($zero) x $col];
push(@set, $rec) while ($row--);
0693_gunzip
02/04/16 02:43ID:???>>690ってネタなんですか?
ネタ(?)にマジレス格好悪いが...
>>690
-------
#!/usr/bin/perl
use strict;
my $row = 3;
my $col = 5;
my $init = 0; # 初期値
my @array = map { [ ($init) x $row ] } 0 .. $col;
--------
0694_gunzip
02/04/16 02:45ID:???0695やさしいお兄さん
02/04/16 02:49ID:???ほんとは
push(@set, [($zero) x $col]) while ($row--);
ってやらないと同じアドレスを参照するから気を付けて!
0696やさしいお兄さん
02/04/16 03:01ID:???row と col の意味が逆だし、0 .. $col だと1つ多いと言ったか言わないか
のうちに送信するテスト。
0697_gunzip
02/04/16 03:02ID:???訂正。
0699nobodyさん
02/04/16 03:22ID:???0700469
02/04/16 03:32ID:???0701nobodyさん
02/04/16 03:51ID:???落ち込むなって(w
0702nobodyさん
02/04/16 19:56ID:MZwt7T+rWin32::APIを使うことまでは分かったんだけど
実際にどうやったらいい?
0703nEtA
02/04/16 21:06ID:???0704702
02/04/16 21:51ID:MZwt7T+r↑使えるの?
0705nobodyさん
02/04/17 05:28ID:???そうなのかなぁ。ローカルのPerl5.005に入れなおしてみます。
>Threadモジュールは5.xxx用でv5.6.xでは使えないみたいです。
0706702
02/04/17 06:28ID:pOnMDwcjActivePerlの5.005(_03)にはThreadモジュール自体が入っていない。
ActivePerlの5.6.1ではThread.pmは入ってるみたいだけど、
>The Thread extension requires Perl to be built in a particular way to
>enable the older 5.005 threading model. Just to confuse matters, there
>is an alternate threading model known as "ithreads" that does NOT
>support this extension. If you are using a binary distribution such
>as ActivePerl that is built with ithreads support, this extension CANNOT
>be used.
って書いてある。
まったく、Threadくらい実装しろや>ActivePerl
0707702
02/04/17 06:42ID:pOnMDwcj>Perl/5.004_50あたりから対応が入ってるんですが
だそーです。
結局ActivePerlではThreadモジュールは使えないってことですな。
0708702
02/04/17 07:24ID:pOnMDwcj思っていたんだけど、今、ActivePerl-5.6.0(.611)を入れてみた。
するとThread使えるみたい。
なんかお騒がせしました。
0709702
02/04/17 10:47ID:???エラー表示が、変わったからできたかと思ったんだけど・・・
今は、全てのバージョンを当たって確かめてます。
もうsageで。
0710702
02/04/17 12:04ID:???Thread使えませんでした。(まったく何なんだよ)
というわけでWin32::APIを使った方法でしかスレッドプログラミングは
できないのではないでしょうか?
0711nobodyさん
02/04/17 15:01ID:???Threadは使えないよ。
perldoc perlthrtut
を見よ。
0712702
02/04/17 18:41ID:???もうThreadいいや。丸1日つぶしたわ。あほくせー。
0713nobodyさん
02/04/17 19:06ID:???0714702
02/04/17 19:59ID:???Windows2K+ActivePerl+Perl/Tkで
CSVからデータを読み込んで、メールを一括送信するツールを作ろうかと。
その時に、メールの送信ループ部分をバックグラウンドで動かさないと
固まってしまうんですよ。
あと、送信処理をマルチスレッドにしれば、同時に複数のメールを
送れるから処理時間が短く済むかなと思ったのです。
0716age
02/04/18 00:37ID:???マウスホイール聞かない。
0717_gunzip
02/04/18 00:50ID:???マウスホイールは使えるよ。
#!/usr/bin/perl -w
use Tk;
use strict;
my $mw = new MainWindow();
my $text = $mw->Scrolled("Text", -scrollbars => 'e',
-width => 30, -height => 20)->pack();
setup_mouse_wheel($text);
$text->insert('end', "Mouse Wheel Test -- line $_\n") for 1..300; # てすと
Tk::MainLoop();
sub setup_mouse_wheel #(Tk::Widget $widget)
{
my $widget = shift;
if ($^O eq 'MSWin32') { # 窓さんの場合
$widget->bind('<MouseWheel>' =>
[ sub { shift->yview('scroll', -(shift() / 120) * 3, 'units') }, Ev('D') ]
);
} else { # Xの場合、コレでいけると思う。たぶん
$widget->bind('<4>' => sub { shift->yview('scroll', -3, 'units'); });
$widget->bind('<5>' => sub { shift->yview('scroll', +3, 'units'); });
}
}
0718nobodyさん
02/04/18 00:53ID:???日本語入れる時にインライン変換が使えないのだが。。。
日本語化されていないから諦めるしかない?
0719_gunzip
02/04/18 02:07ID:???Progressbarウィジェットと、進捗情報を表示するLabelウィジェットを
載せたモーダルダイアログを出しておいて、適宜更新する方法では駄目だろうか?
それが面倒なら、
$mw->repeat(1000 => sub { $mw->update() } );
で1秒ごとに強制的に更新するとか。
外部コマンドを実行する際は、Tk::IOか、またはTk::Eventのfileeventメソッドを利用することで、
ディスクリプタへの入出力が可能になる/閉じられるまでブロックせずに待つことが出来るが、
そういう話ではない?(comp.lang.perl.tkでは、コレ関係の質問が一番多いと思うので...)
>>718
MS-Win版の場合は出来ないと思う。出来るようにする方法も知らないなぁ。
日本語化パッチを当てたX版では出来るはず。
0720nobodyさん
02/04/18 03:24ID:???ありがとう。。。素直に諦めます(涙
Perl2exe で GUI アプリを作ろうかなぁと色々試行錯誤していたのですが、
普通のGUIアプリレベルで作るのは難しそうですね。
ちょっと我慢すれば問題ない気もしますけど。
0722nobodyさん
02/04/19 23:12ID:???0723nobodyさん
02/04/20 11:40ID:M8cSsXMoβ版とかもまだなの?
0724nobodyさん
02/04/20 11:45ID:M8cSsXMo最高のGUI環境ってやっぱPerl/TKなんすかね?
もっと、Win32モジュールとか使ってVC++とかで使うような
GUIを使えないかな?
0726_gunzip
02/04/20 12:21ID:???Win32::GUIと、The GUI-Loftなんかどうですか?
http://www.bahnhof.se/~johanl/perl/Loft/
以下、個人的ぼやき
Perl/Tk ・・・ 結構使ってきたけど、なんか外見がダサイという人が周りに多い。
Gtk-Perl ・・・ 最近はこっち。Windows版なし。
本家Gtk+はWidnwosにポートされているから可能なのだろうが。
PerlQt ・・・ 使いやすくて好きだけれど、Perlバインディングは開発停止中みたい。
QtのWindows非商用版は2.3でとまってるなぁー。
wxPerl ・・・ Windows版では日本語表示できない
(NT系列ではunicode+unifontで出来るという噂を聞いたが真偽不明)
ボタン一つ利用するのに、いちいちサブクラス化するのは面倒か。
Win32::GUI, FLTK, FOX ・・・ 使ったことがない。
後二者は日本語表示を可能にするパッチが転がってました。
0728nobodyさん
02/04/20 14:46ID:???サンクス!
確かにPerl/Tkはダサい。ただ簡単に使えるのがいいけど。
Win32::GUIは前々から気になってたんだけど勉強がてら
使ってみます。
>>727
なるほど。
まあ調べてみたら5.8.0は今年の5月にリリースらしいから
待ってみます。
0729_gunzip
02/04/21 10:11ID:???....(以下略)
http://www.prima.eu.org/
スクリーンショット http://www.prima.eu.org/big-picture/
0730nobodyさん
02/04/21 13:49ID:???http://camelbones.sourceforge.net/index.html
0731nobodyさん
02/04/21 18:51ID:kERwwP8q0733_gunzip
02/04/21 20:04ID:???配色を変えてみたり($toplevel->setPalette())、ボーダーの値を変更してみたりってのは?
その際、いちいちコードの中にオプションの値を埋め込むのではなく、.Xdefaults
形式のファイルに纏めておいて、$toplevel->optionReadfile(filename, priority)
で読み込むと楽ちん。
0734nobodyさん
02/04/22 07:01ID:LmMZGpbzウインドウの左上に表示されるTkのアイコン(?)がダサいよね。
あれ他のアイコンに変えられないかな?
-------------
|TK
-------------
|
|
|
|
0735_gunzip
02/04/22 21:19ID:???my $image = $mw->Pixmap(-file => "title.xpm");
$mw->Icon(-image => $image);
# ないし、$mw->iconimage($image);
0736_gunzip
02/04/22 21:21ID:???でもよろし
0737nobodyさん
02/04/22 21:28ID:???0739nobodyさん
02/04/23 01:14ID:???0740nobodyさん
02/04/23 04:50ID:???0744nobodyさん
02/04/23 19:37ID:???0745nobodyさん
02/04/23 23:55ID:???http://pc.2ch.net/test/read.cgi/php/990178547/67
0747nobodyさん
02/04/24 07:44ID:ZzM1BfC2素人考えでは、アパッチにモジュールとして組み込んで使うと理解している
のですが、なんだかPHPはメジャーでmod_perlはマイナーな気がします。
何か決定的な違いみたいなのがあるのでしょうか?
0749nobodyさん
02/04/24 08:37ID:???だから
1) 一旦コンパイルしてメモリ上にロードされたモジュール類はApacheの子プロセスがexitするまでそのままメモリに残ってる
2) ApacheのAPIをPerlから使える
3) Apacheのフレームワーク内の随所にPerlで書いたハンドラーを組み込める
自分はPHP使いじゃないので知らないがPHPにも同様のものがあるのかも
しれん。でももし言語としてのPHPの話をしているのならそもそも比較自体がナンセンス。
0750nobodyさん
02/04/24 12:13ID:???0751nobodyさん
02/04/24 23:07ID:z19r++98作りたいのだが、サンプルないですか??
0755あぼーん
NGNG0756nobodyさん
02/04/25 13:27ID:vqNaBvlX「./Configure」の後の「make」でエラーになってしまいます。
エラーは最後の行にこんな感じで表示されてました。
make: *** [miniperl] エラー1
Linaxにさわって間もないので、よくわからないのですが、
何かしなければいけないのでしょうか?
0757nobodyさん
02/04/25 13:58ID:???まぁ、rpmにしたところで、apt-getにはかなわんな。
■ このスレッドは過去ログ倉庫に格納されています