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

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

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001名無しさん@お腹いっぱい。2001/05/31(木) 21:49ID:bKRSBFew
・コマンドラインからのPerl活用
・モジュール、オブジェクト指向プログラミング
・Perl6や.NET対応など
・各種GUIツールキット(Perl/Tk, Gtk-Perlなど)
・他言語による拡張(Inline::*, XS, Swigなど)

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

#CGI関連の話題は、なるべく専用スレッドで。
0853nobodyさん02/06/15 14:19ID:???
aged
0854nobodyさん02/06/15 14:29ID:AknjTxRC
214 名前:213 :01/10/20 12:02 ID:fFGjQToc
先程お願いしましたが、まだ削除されていません
事実無根です
早急に削除して下さい
http://kaba.2ch.net/test/read.cgi/company/997171282/699

215 名前:削除屋三太郎 ★ :01/10/20 12:09 ID:???
>>213-214
http://www.2ch.net/guide/adv.html#saku_guideに、
>法人・公的機関の取り扱い
>原則放置
> 法人・企業については、社会・出来事カテゴリ内では、批判・誹謗中傷、
>インターネット内で公開されている情報、インターネット外のデータソースが不明確なもの、は全て放置です。

とありますので、放置とさせていただきます。

260 : :01/10/23 10:54 ID:iMDesK4O

> 法人・企業については、社会・出来事カテゴリ内では、批判・誹謗中傷、
>インターネット内で公開されている情報、インターネット外のデータソースが不明確なもの、は全て放置です

おいおい、データソースが不明確だからこそ削除するんだろうが(苦笑
0855nobodyさん02/07/05 00:17ID:???
afr
0856102/07/05 23:31ID:St7kmpIx
このスレッドの削除依頼を出してください。
0857japh ◆J.5V8ta6 02/07/10 16:13ID:SqtQZzsy
Perl 6開発の補助金が底を尽きる
http://slashdot.jp/article.pl?sid=02/07/10/057238&mode=nested

寄付したいけど金がない…
0858nobodyさん02/07/10 16:54ID:lBfYsgML
ツールスレより引っ越してきました。
例えば100ページのファイルの中に書かれている文字を探し出して
該当する箇所の全部を一気に変換したいんです

文字列aaaa→文字列bbb

perl入ってるし、サーバー起動してMS-DOSで
処理したいディレクトリに移動してから
perl -i.bak -e "s/aaaa/bbb/g" *.txtしてもできませんでした
漏れ使い方間違ってるでしょうか?

.cgi書き換えの場合は、
perl -i.bak -e "s/aaaa/bbb/g" *.cgi
ですよね?

それからそのディレクトリの下のサブディレクトリまで一気に変換するには
どうしたらよいでしょうか?
0859japh ◆J.5V8ta6 02/07/10 21:29ID:???
>>858
-pスイッチが抜けてるのと、
command.com(多分cmd.exeも)はワイルドカードの解釈をしない為だね。

ワイルドカードの解釈は、適当なモジュール作って実行前にuseさせるようにすれば良し。
面倒ならコレ(使ったこと無いけど);
http://search.cpan.org/search?mode=module&query=AutoGlob
086085802/07/10 23:06ID:???
>>895
レス有難うございます。
そうですか、他の場面でもワイルドカード解釈しなくて変だなぁと思っていたところありました。
勉強になりました。
0861 ◆LZJ2qcRk 02/07/18 13:38ID:DwV2l5uY
perl 5.005_3からperl 5.6.1にバージョンアップしたら

Barkley_DBへのtieが出来なくなっちゃって困ってるんです。

use DB_File;
tie(%db,"DB_File","./filename",O_CREAT|O_RDWR,0666) | die;

で5.005_3で動いていたのが、5.6.1ではそのまんまdieしちゃってるんです。
perl -d使ってもtie出来ない理由がわからないんです。

どこチェックすればいいんでしょう。
086286102/07/18 13:39ID:???
あ、use Fcntl;もしてます。
0863名無しさん@お腹いっぱい。02/07/18 14:58ID:???
tie(%db,"DB_File","./filename",O_CREAT|O_RDWR,0666) || die;
の間違いじゃないの?
086486102/07/18 15:34ID:DwV2l5uY
>>863
あ、そうです。そうなってます。
0865nobodyさん02/07/18 15:38ID:???
>>861
バージョンアップしたのはPerlだけ?
dbパッケージがアップグレードされちゃったりしてると
db_dump-1.85+db_load(名前はうろ覚え)とかでDBを作り直さないと
いけないよ。
0866nobodyさん02/07/18 15:42ID:DwV2l5uY
>>865
dbアップグレードしてしまった可能性あります。

いま使っているdbというか、dbのファイルがどのバージョンで作られたものか
調べる方法ないでしょうか。

いちおう現dbはdb2_dumpで出力可能でした。
0867j02/07/18 16:07ID:24XEpTfj
http://js-web.cside.com/index.html
0868nobodyさん02/07/18 16:11ID:???
>>866
Linuxとかだったら file filename ででない?
これまたうろ覚えで申し訳ないのだけど。

でもdb2_dumpで読み込めるんだったらまず1.85あたりだと思うけど。
とりあえずdb_dump-1.85(だかなんだか)で読み込めるかどうか
やってみたら?
0869nobodyさん02/07/18 16:27ID:DwV2l5uY
>>868
HASH Version 5ってでました。
db2_dump old_file | db_load new_file
したら file new_fileはHASH Version 7って出たので
これでたぶんアップデートは出来たんだと思いますが
このnew_fileも読み込めませんでした。

ちなみにこのへんのファイルはどれをえらんでも
db_dump185 filename では
invalid argumentがでてしまいます。
0870nobodyさん02/07/18 16:31ID:???
>>869
むー、じゃあ違うんだな。ごめん、あとはエラーとかもっと詳細が
わからないとわかんないや。
0871nobodyさん02/07/18 16:34ID:???
ま、素直に$!を晒しましょう、と。
で、>>863は確認したのかな?
0872nobodyさん02/07/18 16:45ID:DwV2l5uY
>>871
それ(863)は確認済み、というか転記ミスだったので。

$!ってエラーの原因ですね。
いまdieで$!出力するように書き換えたら

Invalid Argument at dbmview.pl line 10 
って出ました。dbm_dump185のinvalid argumentと似てますね。

この辺かな。
087386102/07/18 16:48ID:DwV2l5uY
ワショーイ!
http://member.nifty.ne.jp/hippo2000/perltips/db_file.htm
にInvalid argumentについての説明がありました。

でもここから解決はまだ遠そうだな。
087486102/07/18 20:19ID:???
http://216.239.51.100/search?q=cache:XnIVWFgl7hYC:nayu.dyndns.org/d/200204.html+%22Hash+Version+5%22&hl=ja&lr=lang_ja&ie=UTF-8&inlang=ja
こちらも解決してない。うみゅう。
087586102/07/18 21:06ID:???
新規ファイルを作ってみてわかった。

DB_File version 1.84の
tie(%db,"DB_File","test_db")で新規にDBを作ると、
file test_db の結果は
Berkeley DB 1.85 (Hash, version 2, native byte-order)となる。

DB_File version 1.65で同様にDBを作ると、
file test_DBの結果は
Verkeley DB(Hash, version 5, native byte-order)となる。

そんなわけで、version 1.84ではversion 1.65で作ったDBは読めない。
データベースのダウングレードかDB_Fileのダウングレードが必要なのか?

(なんでこうなるのかはまだ不明。)
087686102/07/19 00:09ID:???
DB_Fileは標準モジュールというのと、
自分がCPANに頼り切りっていうのこと、あまりこの問題に深く関われないことを
考慮して、とりあえずperl5.005に戻しました。悔しいけどこれで問題解決。

こんど5.6にするときは、DB関係はテキストに書き出しておこう。
0877nobodyさん02/07/19 10:00ID:???
教えてPerlの神様

こんなこと出来ますか?
具体的には

$num = 10;
for ($i = 1 ; $i <= $num;$i++){
などとしてこの中で

$iの値に応じたスカラー変数
$hoge1 $hoge2‥とかが使えるようにしたいんだけど
どうしたらいいんでしょう?
0878nobodyさん02/07/19 10:14ID:???
配列じゃだめなのか?
@num
0879nobodyさん02/07/19 10:20ID:???
自己フォロー

$num =10;
for ($i = 1 ; $i <= $num;$i++){

eval "\$hoge$i = $i";

print "$i\t";
print "${'hoge'.$i}\n";
}

おかげで出来たよ 神様ありがとう。
0880nobodyさん02/07/19 16:36ID:???
>>879
悪い事は言わんからuse strict;して、878の言う通り配列使え。
0881nobodyさん02/07/19 16:46ID:???
>>880
悪い事もたまには言え!
0882????????02/07/20 23:25ID:SBT6j5SN
http://dev.perl.org/perl5/news/2002/07/18/580ann/p580ann.txt.euc-jp
0883nobodyたん02/07/21 00:14ID:???
とりあえず、入れてみた。

気になるのはこの点だな。
- バイナリー非互換:
主に PerlIO の導入により、 Perl 5.8 は以前の Perl 5 XS モジュール
との互換性がありません。XSを含むモジュールに関しては、再コンパイル
の必要がある点に留意してください。もちろんスクリプトに関しては以前
の Perl 5 との互換性が保たれています(以下に挙げる例外を除く)。

で、いまのところこんな感じで入っている。
/usr/bin/perl = 5.005
/usr/local/bin = v5.6.1
/usr/local/perl5.8/bin/perl = v5.8.0
うーむ。
0884nobodyさん02/07/21 00:15ID:???
さぁ、みんなでPHP
0885nobodyさん02/07/21 08:13ID:???
程度の低い書き込みばっかり。ぷっ
0886nobodyさん02/07/21 08:19ID:???
>>885←典型例
0887nobodyさん02/07/21 08:36ID:???
事実だからしょうがない。
次スレは要らないな。
0888nobodyさん02/07/21 08:59ID:???
>>887
俺はお前の方がいらないと思うぞ。
自作自演カコ悪い。
0889nobodyさん02/07/21 09:05ID:???
このスレッドのどこに「程度の低くない」書き込みがある?
自作自演と決めつけるな妄想野郎
0890nobodyさん02/07/21 09:08ID:???
>>889
解決した問題はすべて程度が低いわけだが。
そんなこと尋ねるオマエは一番くだらないよ。
0891nobodyさん02/07/21 09:09ID:???
>>885-890
           ___
    .      |(・∀・)|
     .      | ̄ ̄ ̄   ジサクジエン共和国
         △
        △l |
   __△|_.田 |△_____
      |__|__門_|__|_____|_____
0892nobodyさん02/07/21 09:12ID:???
意味不明。あ、電波君か。
まあ、せいぜいのこのスレで馴れあってテクださい。
0893nobodyさん02/07/21 09:17ID:???
>>892
2ちゃんねるの低レベルな洒落も理解できんか。
人間のレベルで問題あるぞ。
0894nobodyさん02/07/21 09:19ID:???
>>892
まさにお馬鹿の典型書き込みで終了ですか。
その程度が程度の高いことを何ひとつ書けない
オマエの言い訳なら初めから来るなよ。

0895nobodyさん02/07/21 09:23ID:???
>>892
分析結果。

無数 件の該当事例が見つかりました。

自分が不利になったため捨てぜりふを書き逃げ出す。
厨房の典型的な逃げパターンです。
0896nobodyさん02/07/21 09:28ID:???
5.8.0が出たので久しぶりに来たら不毛なことになっているな。
なんつーか以前のメンバーは何処逝ったね?
0897nobodyさん02/07/21 09:33ID:???
>>896
2chでまともな話をしようとする方が馬鹿げてると思いますがね。
貴方にとって有益でも、周りの人間から見れば低レベルで下らないことでしかない時も多いですからね。
可哀想な人だ。
0898nobodyさん02/07/21 09:34ID:???
>>897
>2chでまともな話をしようとする方が馬鹿げてると思いますがね。
反論に値しない。
0899nobodyさん02/07/21 09:35ID:???
>>897
>貴方にとって有益でも、
それでいいじゃん。自分の益になる情報が得られる。それが目的だ。
0900nobodyさん02/07/21 15:13ID:???
>>897 はただの電波だから無視しとけ.
0901nobodyさん02/07/21 16:14ID:???
>>900 無視できない人が多いんですよ。君みたいに(わら
0902nobodyさん02/07/22 08:49ID:???
>>901
がんばれよ。電波でもきっと良いことあるさ。
0903nobodyさん02/07/22 21:14ID:???
>>902
電波は常にいいことだらけかと。
不幸なのは周りかと。
0904nobodyさん02/07/25 07:03ID:???
このスレッドで再び有益な話は出来ないものか。
0905nobodyさん02/07/26 11:51ID:JxVLPbo8
空気を読まずに質問w

XSを使用してperlとCとの構造体のデータのやりとりをしたいんですが。

例えば
C側定義構造体
typedef struct data{
char aa[20];
char bb[20];
int cc;
} DATA;

というものを定義して
samp::samp1(DATA *aaa)

で受け取りたいと。
typemap T_PTROBJ

でマッピングした場合、perl側のデータの記述は
どのように行えばいいんでしょうか?

@aaa = ("11","111".1,"22","222",2);
@aaa = (["11","111".1],["22","222",2]);

この二つはためしてみてだめだったわけですが
0906nobodyさん02/07/26 11:52ID:???
すいません 質問よろしいでしょうか。。
Perlでパケットの受信及びデータ解析を勉強しているんですが、
IPヘッダの中の ある1バイトの中に3ビットと5ビットの2つのデータが
入っていて、それをビット単位で分割する方法が分からないんです。

今のところ $OneByte という変数に
その1バイトのデータを格納しているのですが。。。

どなたかご存知の方がいらっしゃいましたらご指南お願いします。
0907nobodyさん02/07/26 11:54ID:???
>>906

11100000とAND
0908nobodyさん02/07/26 11:55ID:???
>>907
ただ5ビット右シフトでいいのでは?
0909age02/07/26 12:25ID:???
>>905
0910nobodyさん02/07/26 16:41ID:???
>>905
分かりづらい。
0911nobodyさん02/07/26 16:44ID:???
>>910
わからない。と書いた方が潔い。
0912nobodyさん02/07/26 17:03ID:???
>>911
君みたいな糞厨房は消えた方がいいよ。
なにを勘違いしているのかは知らないが。
俺は>905の意図することが分かりづらい、と言っている。

>samp::samp1(DATA *aaa) #これは何? CでもなしPerlでもなし。C++ならこう書けるが。
> typemap T_PTROBJ # 何をマッピングしたのか書いていない。
>@aaa = (["11","111".1],["22","222",2]); # これは何を意図しているのか。
#aaメンバに11,bbに111,ccに1が入って...ということなのか。これでうまくいくはずはないが。
0913nobodyさん02/07/26 17:10ID:???
殺伐としたスレッドですなぁ〜
0914nobodyさん02/07/26 17:14ID:???
>>913
夏休みですから。

「今年の夏の目標はCGIだ!」

で、ちょっと勉強した中学生が調子に乗って回答者のまねごとと。
0915nobodyさん02/07/26 20:26ID:???
>>1
板違い。
ム板でやれヴォケ!!
0916nobodyさん02/07/26 20:42ID:???
>>915
このスレッドが立った経緯ぐらい知っておけ阿呆。
091790602/07/26 21:07ID:???
>>907-908氏
あ なるほど。。ビットをシフトさせるんですね
全然思いつきませんでした。。(汗

昨日からずっと悩んでいただけに凄く嬉しいです。
ありがとうございました。

この板には1年振りぐらいに来たんですが、
ログを見ていると以前よりも煽り、叩きがひどくなっていて
正直質問しようか迷ったんですが。。
まだまだ親切な方がいるんですね また来ます。
0918nobodyさん02/07/26 22:22ID:X9MpLpMf
>>912
ええとちゃんと書きます。ただしXSソースになりますが

091990502/07/26 22:41ID:X9MpLpMf
samp.xs
--------------------------
#include <stdio.h>
(中略)
typedef struct data{
  char aa[20];
  char bb[20];
  int cc;
} DATA;
MODULE = samp PACKAGE = samp
void
samp1(aaa)
  DATA *aaa

  CODE:
  while(0){
    //構造体のデータ処理
  }
----------[eof]-----------

typemap(データ型定義ファイル)
--------------------------
DATA *<tab>T_PTROBJ
----------[eof]-----------

ここまでがxsのソースと、perlとの受け渡しのデータ型定義です
092090502/07/26 22:41ID:X9MpLpMf
>>919の続き
test.pl
--------------------------
#/use/local/bin/perl
use samp;
#Cの(xsの)ソースに引き渡すデータを作成(仮に$aaa)

&samp1($aaa)
----------[eof]-----------

起動をかけるのはtest.plで、呼び出すのが、samp::samp1()になります。
要は、perlのソースから、Cにデータを渡して処理したいのですが、その
データを構造体で受け渡ししたいということです。そのときperl側でのデー
タの定義はどうすればよいか教えて欲しかったのです。
単に要素を配列に入れるだけでは、アンマッチが発生するようです。
0921nobodyさん02/07/26 22:57ID:???
>>919
そのwhile(0)はなんのためにあるの?
0922 ◆JAPH9PWA 02/07/27 00:03ID:???
typemapには SV <-> Cのデータ型 の変換コードを
"自分で"書かなきゃいけないんだよ。大変だけど、Perlはそこまでは面倒を見てはくれないよ。
とりあえずtypemapファイルの構文を勉強してください。
ExtUtilsディレクトリにあるデフォルトのtypemapも参考になるよ。

0923nobodyさん02/07/27 08:18ID:klNDdAyC
Perlで日付の加減などを行うモジュールに、Date::Calcがありますが、
telnetを使えないレンタルサーバで使いたいので、
同じフォルダに入れるだけで使える手軽な日付計算ライブラリないですかね?
0924nobodyさん02/07/27 20:55ID:???
Perl初心者コーナーはスレ違いらしいので、此方で質問させていただきます。。
ファイルのタイムスタンプを変更したいのですが、可能でしょうか?
0925 ◆JAPH9PWA 02/07/27 22:24ID:???
ん〜む。perl5.8.0をmingw-gccでビルドしようとしたけど、上手く行かなかったなぁ。
5.7はビルド出来たんだけど…。やっぱり無理せずActivePerlを待とう。

>>924
可能か否か、という答えが欲しいの?そりゃ可能だけど。
でも多分知りたいのは可能か否か、じゃ無くてutime()関数のことだよね。
Perl初心者スレでは、スレ違いを指摘したんじゃなくて、
その質問の仕方が悪い、ということを指摘されたんだと思うよ。
092692402/07/28 01:20ID:???
有難う御座いました。出来ました。
>その質問の仕方が悪い、ということを指摘されたんだと思うよ。
そのままの質問だったので、書かなくても解る事をだらだら書いてうざがられるよりは良いかと思ってました・・
ボキャブラリーが少なくて申し訳ないです。
0927 02/07/28 08:14ID:0sVNzuOf
すいません、文字列の MD5 を取りたいのですが、
Digest::MD5 をインストールしないでできますか?

CGI で使おうと思っているのですが、同じディレクトリに
上記に付属の MD5.pm を置いて use MD5; とか記述
するだけではできませんよね?

rfc1321 の日本語版は読んでみたのですが、全然
わかりませんでした。
0928nobodyさん02/07/28 10:16ID:???
p://zurubon.strange-x.com/uploader/md5_pl.txt
多分動く。がんがれ。
092992702/07/28 16:04ID:???
>>928
見事に MD5 コマンドと同じ結果が出ました。
有難う御座いました ヽζ゚)ノ
0930nobodyさん02/07/30 23:42ID:ZOuiEpQs
現在perlで quota の設定ができるものを作成中なのですが、
通常であればシェルで

edquota ユーザー名 (Enter)

でエディタが起動して

Disk quotas for user okada (uid xxx):
Filesystem blocks soft hard inodes soft hard
/dev/hdax xxx xxxx xxxx xx x x

上記のテンプレートを編集する事になるのですが、
これを Perl のスクリプトで変更することはできないのでしょうか?

exp) perl ./edquota.pl ユーザー名 blocks値 soft値 hard値 inodes値 soft値 hard値・・

Linux Slackware8.0
Perl5.6 を使用しております。

それでは宜しくお願いいたします。
0931nobodyさん02/08/05 22:26ID:???
>>930 http://search.cpan.org/search?dist=Quota
なんてのがあるらしい。使ったことはないけど。
0932マルチです02/08/09 23:54ID:yPKlUuWH
http://pc3.2ch.net/test/read.cgi/tech/993665608/412
↑人がいません
Perl6でのファイルの開き方がわかりません。
おしえて!
0933nobodyさん02/08/10 01:37ID:???
マジか?
そんなドラスティックな変化は望んでないんだが・・・
@arry[0]
%hash{key}
う〜ん
0934nobodyさん02/08/10 01:42ID:???
http://www.google.com/search?num=100&hl=ja&ie=UTF-8&oe=utf-8&q=PERL6+open+function&btnG=Google+%E6%A4%9C%E7%B4%A2

どのRFCが新しいのか分からん
後方互換性頼りで良いじゃん
0935nobodyさん02/08/10 01:49ID:???
エンコードでもするんなら兎も角ファイルが開けないってのはヴァカだと思われ
093693202/08/10 01:51ID:???
Perl6スレの人ってRFCとかただ記事みて議論してるだけなんですかね?
自分がいまテストしてるPerl6はParrotにふくまれてたやつで
昨日からopen関数が実行できねーよ!みたいな。
0937nobodyさん02/08/10 02:30ID:???
取り合えずその調子じゃ誰も相手してくれないんじゃない
世の中の人間はアンタの50年来の嫁じゃ無いんだから
言葉に乗せなきゃ何言いたいのか解らないよ
そんなに大変ならPERL6のMLに投げてみ
HELP PLZ!!!! ってさ
093893202/08/10 02:36ID:???
>>937
まぁ忠告は心に刻んでおくが
技術的な反論はできんのか。
093993202/08/10 02:37ID:???
>言葉に乗せなきゃ何言いたいのか解らないよ
これが俺には何を言ってるのかわからん
0940nobodyさん02/08/10 02:56ID:???
>>1 糞コテは死ね。
0941nobodyさん02/08/10 04:02ID:SdI5yvJj
ふぁいる開く時は

open FH,file;

でいいみたいだよ
がんばってね★ミ
0942nobodyさん02/08/10 04:21ID:???
ま、そうなるわな(笑
ここguzipが居なくなって廃れたなあ
みんなPerl6入れてるの?
早くParrotでスピード上げて遊びたいな
094393202/08/10 04:45ID:???
$ ./perl6 -w my5ofile.p6
"arse error [line 2]: Invalid statement near "open FH,"my4.p6";
Can't call method "tree" on an undefined value at ./perl6 line 183.
============================================================
[my5ofile.p6]
sub main(){
open FH,"my4.p6";
print "ujgh\n";
}
0944_gunzip02/08/10 05:21ID:???
Perl6では、ファイルを開く際は、
my $fh = open $path : mode => 'r' or die "Can't open";
とします。

parrot-latest(8/9現在)では、open関数は"not yet implmented"です。
094593202/08/10 05:34ID:???
糞コテ師匠キタ━━━━━(゚∀゚)━━━━━!!!!
>>944
サンクス
0946nobodyさん02/08/10 15:27ID:???
なんだコイツ
死ねよお前
0947nobodyさん02/08/10 15:30ID:???
なんだコイツ
死ねよお前
0948nobodyさん02/08/10 15:43ID:???
なんだコイツ
死ねよお前
094914802/08/10 15:51ID:???
削除以来出しました。
0950nobodyさん02/08/10 16:18ID:???
Perlで"真に"グローバルな常数を作ることは出来ないのでしょうか?
常数(use constant)を別モジュールにまとめて利用しようとしたのですが、
呼び出し元ではその常数を使えますが、別に呼び出しているモジュールでは
strict subsに引っ掛かってしまいます。
no strict subsをするしか無いのでしょうか。
0951nobodyさん02/08/10 16:21ID:???
コード例を。
0952nobodyさん02/08/10 16:27ID:???
つか、そのモジュールでもuseすればよか。
レス数が950を超えています。1000を超えると書き込みができなくなります。