トップページ⇒php
990コメント339KB

Perlモジュールについて

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2001/08/15(水) 07:47ID:???
モジュールについて話し合うスレッドです。

モジュールの使い方とかリンクは>>2-10さんが出してくれるかも?!
0284nobodyさん04/03/07 23:44ID:???
まあもともと他に話題も無かったし
0285nobodyさん04/03/08 01:00ID:???
PODって日本語で書いちゃダメ?
0286nobodyさん04/03/08 23:07ID:???
日本語やりたきゃひまわりでもやったらどうだい?
0287nobodyさん04/03/09 11:35ID:???
sendmailを使うモジュールって
Mail::Sendmailが定番ですか?
0288nobodyさん04/03/09 12:34ID:???
なんとなく Net::SMTP が好き
0289nobodyさん04/03/09 12:37ID:???
sendmail を使うモジュールは Mail::Sendmail が定番だろうけど、
sendmail 入ってなかったら困るよなぁ。
0290nobodyさん04/03/09 12:42ID:???
>>289
いえ、入ってます。
今は手動でやってるんですが、簡単にしたいなと
こういうわけです。
ありがとうございました。
0291nobodyさん04/03/09 13:01ID:???
>>290
そうじゃなくて、将来、sendmailの無い環境で動かすようになる可能性を
示唆してるのだと思うけど。
029229004/03/09 14:32ID:???
>>291
> >>290
> そうじゃなくて、将来、sendmailの無い環境で動かすようになる可能性を
> 示唆してるのだと思うけど。
>
ああ、なるほど。
とりあえず自分が使うんでない環境になたら別の手立てを考えますけど、
それとも、それならNet::SMTPとかに最初からしておくべき、って事でしょうか?
0293ヽ(´ー`)ノ04/03/09 14:48ID:???
Mail::Mailer とか Mail::Sender とかを使えって話じゃないんだろうか、多分。
0294nobodyさん04/03/10 16:05ID:???
>285
使いたければ使っても良いんじゃないの。
CPANに登録したいとか言うのなら英語の方が良いと思うが。
0295nobodyさん04/03/11 01:44ID:???
>>294
英語の方が良いっていうか日本語で登録できるの?
万が一登録できても馬鹿にされまくりだと思うけど。
0296nobodyさん04/03/11 06:42ID:???
なんで馬鹿にされるの?
0297nobodyさん04/03/11 06:45ID:???
英語できない奴に限って変なコンプレックスを持ってる
0298遙皇 ◆HEHARUKAoo 04/03/14 21:53ID:MDuAbN5E
cygwinのPerl5.8.2でCPAN.pm使って
G/GA/GAAS/libwww-perl-5.76.tar.gzとかインスコしようとすると
HTML::Parserでコケますが
これってこういうものですか?
0299nobodyさん04/03/15 01:54ID:???
>>298
Perl のバージョンあげた後、入れるの忘れてたからついでに入れてみたけど問題なく入ったべ。
これ以上は何て言われてこけてるのかわからないとなんとも。
0300遙皇 ◆HEHARUKAoo 04/03/15 02:58ID:???
>>299
こりゃどーもすまんです。
perl.hとかperlvars.hで氏ぬほどsyntax errorが出てるのですが

In file included from /usr/lib/perl5/5.8.2/cygwin-thread-multi-64int/CORE/perl.h:2349,
from Parser.xs:19:
/usr/lib/perl5/5.8.2/cygwin-thread-multi-64int/CORE/scope.h:221: error: syntax error before "sigjmp_buf"
/usr/lib/perl5/5.8.2/cygwin-thread-multi-64int/CORE/scope.h:221: warning: no semicolon at end of struct or union
/usr/lib/perl5/5.8.2/cygwin-thread-multi-64int/CORE/scope.h:228: error: syntax error before '}' token
(Snip)
In file included from /usr/lib/perl5/5.8.2/cygwin-thread-multi-64int/CORE/perlapi.h:37,
from /usr/lib/perl5/5.8.2/cygwin-thread-multi-64int/CORE/XSUB.h:313,
from Parser.xs:20:
/usr/lib/perl5/5.8.2/cygwin-thread-multi-64int/CORE/perlvars.h:31: error: syntax error before '*' token
/usr/lib/perl5/5.8.2/cygwin-thread-multi-64int/CORE/perlvars.h:31: warning: data definition has no type or storage class
(Snip)
/usr/lib/perl5/5.8.2/cygwin-thread-multi-64int/CORE/perlvars.h:52: error: syntax error before '*' token
/usr/lib/perl5/5.8.2/cygwin-thread-multi-64int/CORE/perlvars.h:52: warning: data definition has no type or storage class
make: *** [Parser.o] Error 1
/bin/make.exe -j3 -- NOT OK
Running make test
Can't test without successful make
Running make install
make had returned bad status, install seems impossible

こんな感じです。
perl.hが悪いとか言われても(;´Д`)
0301nobodyさん04/03/15 13:27ID:???
コンパイル通らなければ修正するしかないだろう。
標準ライブラリヘッダってわけじゃないんだから、編集しても全然問題なし<perl.h
0302ヽ(´ー`)ノ ◆.ogCuANUcE 04/03/15 13:50ID:???
>>300,>>301
原因をキチンと調べて、他に方法が無いにしか修正しない方がいいと思うけどね。
ググって同じような原因で悩んでいる人がいないのなら、大抵、自分の環境がおかしいから。
このモジュールの make は通っても、他のモジュールのコンパイルに影響を与える可能性もある。

cpan> look HTML::Parser
# perl Makefile.PL
# make > LOGFILE 2>&1

して、エラーメッセージの始めの方見せて欲しいかも。

パッと思い付くのは Perl が複数バージョン入ってて、ゴチャゴチャになってたり、
gcc が必要なヘッダを見付けられてないとかかねぇ。

あと、今から入れるんなら事情が無い限り 5.8.3 にした方がイイと思うが。
0303遙皇 ◆HEHARUKAoo 04/03/15 15:03ID:???
すみません、お世話になります
まずmakeのメッセージの冒頭
(Snip, only cp *pm)
/bin/perl.exe /usr/lib/perl5/5.8.2/ExtUtils/xsubpp -typemap /usr/lib/perl5/5.8.2/ExtUtils/typemap -typemap typemap Parser.xs > Parser.xsc && mv Parser.xsc Parser.c
/bin/perl.exe mkhctype >hctype.h
/bin/perl.exe mkpfunc >pfunc.h
gcc -c -DPERL_USE_SAFE_PUTENV -fno-strict-aliasing -DUSEIMPORTLIB -O2 -DVERSION=\"3.35\" -DXS_VERSION=\"3.35\" "-I/usr/lib/perl5/5.8.2/cygwin-thread-multi-64int/CORE" -DMARKED_SECTION Parser.c
In file included from /usr/lib/perl5/5.8.2/cygwin-thread-multi-64int/CORE/perl.h:687,
from Parser.xs:19:
/usr/include/sys/times.h:11: error: conflicting types for `clock_t'
/usr/include/time.h:69: error: previous declaration of `clock_t'
こんな感じでコンフリクトから始まってます。
0304遙皇 ◆HEHARUKAoo 04/03/15 15:06ID:???
続き
In file included from /usr/include/asm/socket.h:14,
from /usr/include/cygwin/socket.h:23,
from /usr/include/sys/socket.h:15,
from /usr/lib/perl5/5.8.2/cygwin-thread-multi-64int/CORE/perl.h:709,
from Parser.xs:19:
/usr/include/cygwin/if.h:79: error: syntax error before "caddr_t"
/usr/include/cygwin/if.h:81: error: syntax error before '}' token
/usr/include/cygwin/if.h:82: error: syntax error before '}' token
ここまでif.h
0305遙皇 ◆HEHARUKAoo 04/03/15 15:08ID:???
続き
In file included from /usr/lib/perl5/5.8.2/cygwin-thread-multi-64int/CORE/perl.h:2071,
from Parser.xs:19:
/usr/include/pthread.h:72: error: syntax error before '*' token
(Snip)
/usr/include/pthread.h:135: error: `pthread_create' declared as function returning a function
/usr/include/pthread.h:135: error: syntax error before "void"
/usr/include/pthread.h:139: error: syntax error before "int"
/usr/include/pthread.h:141: error: syntax error before "void"
/usr/include/pthread.h:142: error: syntax error before '*' token
(Snip)
/usr/include/pthread.h:178: error: syntax error before ')' token
/usr/include/pthread.h:185: error: syntax error before "pthread_self"
/usr/include/pthread.h:188: error: syntax error before "int"
/usr/include/pthread.h:189: error: syntax error before "const"
ここまでpthread.hですがこれはヘッダが悪いかも
0306遙皇 ◆HEHARUKAoo 04/03/15 15:11ID:???
こんな感じでログが13KBほどあります。

・そもそもヘッダファイルが悪い
・threadsにPOSIX使うな

みたいな感じで解決策は思い浮かぶのですがそこから先がどうもダメです・・・
0307nobodyさん04/03/15 15:22ID:???
pthreadとかsys/times.h、time.hを使った他のソース(Perl以外)はコンパイルできるの?
0308遙皇 ◆HEHARUKAoo 04/03/15 16:08ID:???
pthreadはlibが見つかってなかったようです。
環境を修正したらこっちは落ち着きました。
ただ、time.hとsys/times.hはダメですね。
0309遙皇 ◆HEHARUKAoo 04/03/15 18:33ID:???
time.hとsys/times.hがコンフリクトしたらPerl自体ビルドできねえじゃん・・・_| ̄|○

再インスコします
0310遙皇 ◆HEHARUKAoo 04/03/19 12:35ID:???
再インスコしてわかったのですが
そもそも/lib/libc.aが見つかってなかった模様ですた。
0311nobodyさん04/03/29 19:23ID:VhHocr2p
CGI::Sessionつかって
$session = new CGI::Session("driver::File", undef, {Directory => $session_dir});
$sid = $session->id();
$session->param("aaa", "v_bbb");
のようにして、得たセッションIDをもとに次にアクセスするときにその
セッションIDをもとに
$session = new CGI::Session(undef, $sid, {Directory => $session_dir});
として、前のセッションのデータにアクセスしようとしたんですが、データを
引き継げてないようです。これは使い方が間違っているのでしょうか?
ぶっちゃけparamメソッドで入力したデータに二回目以降のアクセスで
取得できるようにするにはどのようにすればいいのでしょうか?

$session_dirに指定したファイル?もどこにあるかわからないし、、、
わからないことずくしです。
0312nobodyさん04/03/30 02:28ID:???
>>311
「データを引き継げていないようです」なんて投げやりな事を言わずに
とりあえず use strict したり、スクリプトのあちこちに print STDERR $hoge とかして
何がおこってるのか確認してみたらよいかと思うですよ。
0313おしえてたこらん04/04/06 00:09ID:iAK4SXtb
Perlでセッションを使う一番簡単なモジュールを教えてください!!
無料鯖で使いたいのでpmファイルをもってくれば使えるだけのがいいです!!
0314nobodyさん04/04/07 08:28ID:???
>>311
$session_dirのパーミッションは?
0315nobodyさん04/04/07 08:42ID:???
>>313
セッション管理で何がやりたいかによって違う。
単にSessionIDで連続したセッションである事を管理するだけならcookieを
使えばよい。セキュアでない単純なデータの保存もcookieで良い。
大量のデータを保存する場合は、Apache::SessionやCGI::Sessionが便利だが、
依存するモジュールが多いので単にpmを持ってくれば良いというものではない。
比較的簡単なのはWalrus::Session::Lite。
0316nobodyさん04/04/07 11:57ID:uSQ3Xq7V
Perl スクリプト内で、相対パス指定を絶対パス指定に変換できるような
モジュールはありますでしょうか?

ぐぐってみたら File::Spec->rel2abs が見つかりましたが、" ../../ "の
ような指定が思った通りに変換できませんでした。
(Active Perl v5.6.1 Build 635@Win2000上で確認)

テストに使ったコード(test2.perl)
use File::Spec;

$abs_path = File::Spec->rel2abs( '../../temp/', 'c:/WINNT/system32/drivers/etc/' );
print $abs_path;

結果
C:\>perl test2.perl
C:\WINNT\system32\drivers\etc\..\..\temp


C:\WINNT\system32\temp に変換して欲しいのですが・・・
0317nobodyさん04/04/07 13:12ID:???
>>316
そのものズバリはしらない。
ちょっとカッコ悪いが下のスクリプトで同じような結果になる。

use Cwd;
my $cur_dir = Cwd::getcwd();
chdir '../../temp';
print Cwd::getcwd();
chdir $cur_dir;
0318nobodyさん04/04/07 13:15ID:???
my $abs_path = File::Spec->rel2abs('../../temp/', 'c:/WINNT/system32/drivers/etc/');
shorten => while $abs_path =~ s|[^/\\]+[/\\]\.\.[/\\]||;
print $abs_path;
031931604/04/07 14:39ID:???
>>317
>>318
318さんの方法を使う事にしました。ありがとうございました。

あと、スレ違いになってしまいますが 318さんのコードの中の
「shorten」は Perl 標準関数でしょうか?
ぐぐってみたのですが、正体が分かりませんでした。
0320nobodyさん04/04/07 15:11ID:???
>>319
=> 演算子を調べるべきだろう。

'縮めろ' while ... なり
1 while ... なり
while ($abs_path =~ ...) {} なりご自由に。
0321nobodyさん04/04/07 17:46ID:???
>>320
初心者にそのコード酷では…

0322nobodyさん04/04/07 22:15ID:???
>>311
mod_perl使っているなら
$session->flash();
が必要
032332104/04/07 22:19ID:???
>>322
flashではなくflushです。すまそ
0324nobodyさん04/04/09 12:53ID:???
E:\>perl -e "笑点 => while 1;"
Unrecognized character \x8F at -e line 1.

(`Д´)オッシャ
0325ヽ(´ー`)ノ ◆.ogCuANUcE 04/04/09 13:51ID:???
こうだろ。

$ perl -e "'笑点' => while 1;"
0326nobodyさん04/04/17 22:56ID:???
Image::Magickのマニュアルなぜ翻訳されて無いんでしょうか?
2、3見つかりますがどれも機械訳&途中までで使い物にならないです
もしあるのなら教えていただけませんでしょうか?

使ったスクリプト書いてwin上で動いてたのが
レン鯖で動いてくれなくて・・・
0327nobodyさん04/04/17 23:32ID:???
日本語訳がないとわからないならそういうものを使わなければいい
0328nobodyさん04/04/17 23:41ID:???
使う必要があるから聞いてるんだろ
自分でちょっとづつ翻訳していってるのがローカルにあるよ
しかしあまりに時間がかかるしわからない英文もある。
本来のやりたい事と実際やってる事が激しく脱線してて
いやんなるんだよ
大体論点ずれてんだよ
これだけ一般的に使われてるモジュールが
なぜ翻訳されて無いのかと聞いてるんだろ
こんなに翻訳されてるのに http://perldoc.jp/

何でもかんでも
使いたいなら英語勉強しなってな風潮にうんざり
0329nobodyさん04/04/17 23:43ID:???
あ、不毛だからもうレスいいです
0330nobodyさん04/04/17 23:45ID:???
世の中なんでも自分のレベルに合っていないといけないわけ?
自分に合った環境が整っていないと切れる能無しのほうがうんざりするが。
0331nobodyさん04/04/18 00:14ID:???
Give&Takeの仕組みがわかってないんだろうか。
翻訳したもの自分のサイトで晒してから言えって。
0332nobodyさん04/04/18 05:17ID:Z8nwBIb4
うっせー馬鹿
うだうだくっちゃべってる暇あったら早く翻訳しろカス
0333遙皇 ◆HEHARUKAoo 04/04/18 14:10ID:???
自分で翻訳するしか。
0334nobodyさん04/04/18 14:16ID:???
328はImage::Magickの和文マニュアルを見て何をしたいのだろう?
APIが書いてあるだけだよね。APIを確認したいって話か?
それよか「動かない」ってどういうことなんだろう?
当人のスキルが判らなさすぎなんで、何ともいえなさすぎ。
0335nobodyさん04/04/18 22:22ID:???
もう解決したよヴォケが
$hoge->Write(filename=>'./hoge.gif',type=>'gif');
俺のローカル環境(win)ではこれで動いてたのが
レンタルのunix環境では動かなかった
$hoge->Write("gif:./hoge.gif");
こんな感じでいいんだな
あと、別にタイプ指定しなくても拡張子で判断して
ちゃんと圧縮方法選んでくれるようだ。
$hoge->Write("./hoge.gif");
0336nobodyさん04/04/19 00:23ID:???
それっぽっちのことで騒いでいたのか ( ゚д゚)ポカーン
0337nobodyさん04/04/19 12:32ID:???
てす
0338nobodyさん04/04/19 13:41ID:???
マニュアルどうこうより問題箇所の切り分けをできるようにならんと・・・
0339nobodyさん04/04/23 14:56ID:???
誘導されてきますた。
すみませんがWindowsでのミリ秒の取得方法をご教授下さいOTL
Jperl 5.005_03 です。

標準入力に何秒かかったというコーディングって
むずかしいですかね?(´・ω・)
0340nobodyさん04/04/23 17:14ID:???
>>339
Bechmarkモジュールを使ってみました。

use Benchmark qw(:hireswallclock) ;
$t0 = new Benchmark;
print "何か入力して:";
$str = <STDIN>;
chomp $str;
$t1 = new Benchmark;
$td = timediff($t1, $t0);
print "たかが$strを入力するくらいで", (split(/\s/, timestr($td)))[0], "秒もかかるの?(プッ\n";


ところで、特にJperlを使わなければいけない理由が無いなら、Encodeモジュールの
perldoc読んで、そろそろactiveperl 5.8.2に移行したほうがいいと思いますよ。
0341nobodyさん04/04/23 20:20ID:???
5.8.3 ぢゃないのか
0342nobodyさん04/04/23 20:39ID:???
Win32::GetTickCount()
0343nobodyさん04/04/24 01:12ID:???
>341
5.8.4だろ?
0344nobodyさん04/04/24 11:16ID:???
>>343
Activeperlは5.8.3build809が最新。
0345nobodyさん04/04/26 10:16ID:???
>>340
どうもありがとうです。
やってみたけどおいらの知識では(´・ω・)でした。素直に諦めます。
モジュールってどっかから落としてこないと駄目なんですよね?
Jperlにした意味は特にないです。たまたま見つけたので今まで使ってました。
近いうちにactiveperl入れてみたいとおもいます。

初心者丸出しすみません・・・OTL
034634504/04/26 11:39ID:???
早速activperlいれますた。
うまくいきました! ありがとうございました(`・ω・´)

0347nobodyさん04/05/08 13:31ID:???
Benchmark(timethese)の結果の読み方がドキュメントを読んでも良くわかりません。

a: 2 wallclock secs ( 2.02 usr + -0.01 sys = 2.01 CPU) @ 496770.99/s (n=1000000)
b: 3 wallclock secs ( 1.88 usr + 0.02 sys = 1.90 CPU) @ 525486.07/s (n=1000000)

wallclock secs が掛かった秒数で、
/s の値が一秒に何度実行したかの数だと思っていたのですが、
それだと時間がかかったほうの /s の値が大きいのは何故だろうと……。

あと usr と sys の意味もいまいち。
0348nobodyさん04/05/08 14:45ID:???
>>347
探してやったぞ。感謝しろ。
http://chaichan.hp.infoseek.co.jp/qa4000/qa4379.htm
0349nobodyさん04/05/09 17:52ID:???
大体解りました。
感謝します。
#そのページの回答者にも
0350ヽ(´ー`)ノ ◆.ogCuANUcE 04/05/11 14:03ID:???
CPAN に IOC::Lite をハケーン。(・∀・)イイッ!

0351nobodyさん04/05/21 20:32ID:2dDSzz6y
初心者スレから誘導されてきました。
バーコードイメージ(PNG)をベクターデータに変換して
PDFに貼り付けたいのですが、
そんな処理はperlで可能でしょうか?
ちなみに環境は、Linux + perl5 です。
0352nobodyさん04/05/23 02:46ID:???
>>351
また難しい注文だな。

Perl のモジュールでそれができるものは見当たらないが、
Linux 上で動いて輪郭抽出を行うソフトとして autotrace てのがあって、
一応 PNG を食って (輪郭だけの) PDF を吐き出すことはできるらしい。
http://autotrace.sourceforge.net/
こいつを perl から呼び出せば、できんことは無いと思う。

ただ、すでにある PDF の上に輪郭を貼り付ける、というのは、
さらにもう一段階難しいと思われる。
0353nobodyさん04/05/27 19:38ID:???
フォントファイルと文字とあと必要な属性(サイズとか)を指定して
その文字が表示された場合の横幅(ピクセル数とか)をゲットする
ということをやりたいのですが
そういうモジュールってありませんか?

フォントファイルはTrueType(TTC)ファイルで、
文字はASCIIだったり日本語だったりします。
0354nobodyさん04/05/28 21:06ID:CmH5bJcK
GD
0355nobodyさん04/05/28 21:07ID:CmH5bJcK
GD
0356nobodyさん04/05/30 01:13ID:AsPEp7PV
すみません、ちょっと質問なんですけどperlをコマンドにしている
perl=/usr/local/perl…
のように定義されているファイルを教えて下さい。
旧バージョンの方が記述されてしまっているようで困っております。
0357nobodyさん04/05/30 01:44ID:???
( ゚д゚)ハァ?
0358nobodyさん04/05/30 02:22ID:njFgOC0Y
HTML::Templateのライセンスについて聞きたいんですけど。
HTML::Templateって、GPLですよね?
ってことは、GPLの
  プログラムの全部あるいは一部を用いて作られたソフトウェアは
  GPLに従って頒布されること
ってことで、HTML::Templateを利用した「ウェブアプリ自体」も、GPLに従い、
 ・必ずソースプログラムとともに頒布、複製される。もしソース
  プログラムを付けずに配布する場合は、ソースプログラムを確
  実に入手できる手段を提供することが義務付けられる
 ・ソフトウェアを使用、複製、変更、頒布したり、新しいフリー
  ソフトウェアの一部として利用できることを認める
 ・GPLに従って頒布しなければならない
ってことになるんですかね?
0359nobodyさん04/05/30 02:48ID:???
>>358
Artistic License も選べるけどな。

http://search.cpan.org/src/SAMTREGAR/HTML-Template-2.6/README
http://opensource.jp/licenses/
http://home.catv.ne.jp/pp/ginoue/memo/gpl.html
036035804/05/30 03:48ID:???
>>359
 リンクありがとです。
 Artistic License は仰る通りHTML::Templateのドキュメントにも
書いてあったのですが、よく分からないんですよね。この辺のライセン
ス関係の解釈って難しいので(単に私が馬鹿ばだけかもしれませんが)
リンク見てもググっても、結局得たい答えが見つかりませんでした。
 早い話、HTML::Templateを一切改変せずそのまま「標準版」として
自作ウェブアプリの1ライブラリとして利用し、商用目的で配付する場
合、Artistic Licenseではどの様に扱われるかということなんです。
 そもそもそういった商用目的での配付は無理なんですかね?可能でも
自作ウェブアプリのソースも公開し、配付と改変を認めないといけない
のですか?
 それとも、ソースクローズドな形で配付できる方法もあるのでしょう
か?
0361nobodyさん04/05/30 12:17ID:???
|ttp://search.cpan.org/src/SAMTREGAR/HTML-Template-2.6/ARTISTIC
|
| 8. Aggregation of this Package with a commercial distribution is always
| permitted provided that the use of this Package is embedded; that is,
| when no overt attempt is made to make this Package's interfaces visible
| to the end user of the commercial distribution. Such use shall not be
| construed as a distribution of this Package.

| ttp://opensource.jp/artistic/ja/Artistic-ja.html
| 8. このパッケージを商用配布と組みあわせるのは つねに許されています、
| もしこの 「パッケージ」の利用方法が埋めこみであれば、 すなわち、この「パッケージ」の
| インターフェイスが その商用配布のエンドユーザーに見えるように しようとするのでなければ。
| このような 利用方法はこのパッケージの配布と 解釈されません。
036235804/05/30 17:34ID:???
>>361
 単純明快なお答えに感謝です。まさに求めていた回答でした。
 ただ、
   ttp://opensource.jp/artistic/ja/Artistic-ja.html
は、359で張っていただいたリンクからたどれるものであり、自分も見ていたのです。なのに(今思えば睡魔が襲っていた
のでしょう)最初の段階で頭が混乱し、8.を見落としていました。全く情けない限りです。自分の怠慢であるにもかかわら
ずご丁寧に回答して下さったことに感謝です。

 とても冗長な書き込みで申し訳ないのですが(書き込みを二回に分けます)、お付き合い下されば光栄です。

 さて、このThe Artistic Licenseを自分なりに以下のように解釈しました。

1.実行環境の鯖にThe Artistic Licenseに基づくパッケージがインスコされていない場合、当該パッケージを自作アプリと一
緒に同梱して(圧縮とか)配布できる。その場合のパッケージは、「標準版」であればテキストファイルベースのPure Perl
で書かれたものであろうとその他の実行形式であっても構わない。その際、自作アプリのマニュアルに当該パッケージの
著作権表示・免責規定を記載する。
↑The Artistic Licenseの1.より

2.但し、著作権所有者の記載を、自作アプリの宣伝や推奨に用いてはならない。
↑The Artistic Licenseの9.より

 さて、問題の商用配布ですが、

3.商用配布は常に許される。その利用方法が埋め込み、つまりパッケージのインターフェイスが商用配布のエンドユーザー
に見えるように意図しないことが条件。この場合はパッケージの配布とは解釈されない。

ってことですよね?
036335804/05/30 17:36ID:???
 そこで質問なのですが、ここでいう「インターフェイス」ってのは、普通の解釈どおり、パッケージまたはモジュー
ルのサブルーチンまたはメソッド(およびそれによって実現される仕様:例えばHTML::Templateなら、TMPL_VARタグ
など)と考えて良いのでしょうか?
 もしこの解釈が間違っていなければ、尚且つ「エンドユーザー」がそのアプリを購入して実際にアプリとして稼動さ
せた場合の利用者であるならば、購入者に、「プログラマの方へ:paramメソッドのxxxx引数に掲示板の記事を入れて
下さい、デザイナの方へ:<TMPL_VAR NAME="xxxx">の部分に掲示板の記事が表示されますので適宜HTMLなどで装飾し
て下さい」などとインターフェイスをマニュアル上に書き込んでも、購入者はエンドユーザーでなく、これらのマニュ
アルを見て実際にアプリをチューニングして稼動させる側であり、その稼動したアプリを実際に利用する「エンドユー
ザー」ではないのでこのように購入者側にマニュアルとしてインターフェイスを公開してもThe Artistic Licenseの
8.には違反しないと解釈して宜しいですか?
 また、それが正しいのであればパッケージの配布とは解釈されないので、「マニュアルに規定したチューニングなど
による改変以外、無断複製、無断改変を禁止します」と制限をかけることが出来ますか?そして配布と解釈されないの
で自作アプリの著作権表示を(当該パッケージの著作権表示とともに)記載しても構いませんか?
0364nobodyさん04/05/30 18:56ID:???
著作権やライセンスに関する不明瞭な部分は、第三者に聞いても解決はしない。
0365nobodyさん04/05/30 19:09ID:???
>>362-363
「インターフェイス」や「派生物」という言葉が何を指すかを
厳密に定義できるのは裁判官だけだ。国内では Artistic License
も GPL も判例が出ていないから、正しい答は誰にも出せんよ。

解釈に不安があるのなら、やるべきは実例を沢山漁って線の引き
処を掴むなり、ライセンス条文を書いた所へ直接尋ねる事だろうし、
相談相手にするべきは 2ch の名無しではなく君の会社の法務部
だろうな。

あと、完全にスレ違いの話題なので、続けたいなら余所へ
行ってくれんか。
http://pc5.2ch.net/test/read.cgi/tech/1045006087/
036635804/05/30 22:26ID:???
>>364
>>365
 ご回答ありがとです。仰る通り、これは第三者に聞いても解決しないかもしれ
ませんね。
 法務部に回さなかったのは、結局のところ回したところで法解釈に留まり、そ
の解釈に何ら法的効力が担保されないと思ったからです。事実、仰る通りこれは
裁判官の判断しか法的効力を持たず、かといって国内では判例もないどころか通
説も見当たらないので「正しい答え」を知る為に、実務で私と同じような状況に
あって実際にこのライセンスを私と同じ状況下で、商用目的で利用されていらっ
しゃる方がいないかと思い、2chで聞かせて頂いたのです。

 もう少しMLなどで聞いてみてそれでも駄目なら、直接、Sam Tregar氏に聞い
てみようと思います。

 モジュールの話が、ライセンスの話になってしまい、ご指摘通り、スレ違いと
なりました。申し訳ないです。このスレでのこの話題についてはこれで終わりに
します。有難うございました。
036735804/05/30 22:29ID:???
>>364
>>365
 ご回答ありがとです。仰る通り、これは第三者に聞いても解決しないかもしれ
ませんね。
 法務部に回さなかったのは、結局のところ回したところで法解釈に留まり、そ
の解釈に何ら法的効力が担保されないと思ったからです。事実、仰る通りこれは
裁判官の判断しか法的効力を持たず、かといって国内では判例もないどころか通
説も見当たらないので「正しい答え」を知る為に、実務で私と同じような状況に
あって実際にこのライセンスを私と同じ状況下で、商用目的で利用されていらっ
しゃる方がいないかと思い、2chで聞かせて頂いたのです。

 もう少しMLなどで聞いてみてそれでも駄目なら、直接、Sam Tregar氏に聞い
てみようと思います。

 モジュールの話が、ライセンスの話になってしまい、ご指摘通り、スレ違いと
なりました。申し訳ないです。このスレでのこの話題についてはこれで終わりに
します。有難うございました。
036835804/05/30 22:31ID:???
500 エラーが出たのでリロードして確認したら更新されてなかったので
もう一度書きこんだら二重書き込みになってしまいました。すみません
です。
0369nobodyさん04/05/31 00:35ID:???
>365
誘導入れようかどうしようかと思ったんだけどね。

あ、やっぱそこライセンススレだったのか。
一応 UNIX 板にもライセンススレがあるけど質問には向かないかもなー。
ライセンスあれこれ
http://pc5.2ch.net/test/read.cgi/unix/1032702590/
037035804/05/31 09:30ID:???
>>369
 ご紹介有難うです。
 ご紹介いただいたスレを見ましたが、
>>365
 と同じく、質問には向かない気がしました。

 法務部に問い合わせを代行させてもよいのですが、私と法務部の間で
伝えたいことのニュアンスの違いがあるかもしれないので直接調べるな
り直接Sam Tregar氏に聞いてみようと思います。

 色々お騒がせしてすみません&感謝です。
0371nobodyさん04/06/07 00:10ID:KicuegCZ
Windows2000SP4 + ActivePerl5.6.1(Build638)でグラフを描きたいと思っています。
GD::Graphはインストールしたのですが、
>Can't locate GD/Text/Align.pm
と出てしまいます。

GD::Textを入れようとしたのですが、Windows用は入っていないようです。
// http://ppm.activestate.com/PPMPackages/zips/6xx-builds-only/GDTextUtil.zip

諦めるしか無いのでしょうか(´・ω・`)
何かいい手をご存知の方がいらっしゃいましたら、ご教授のほどお願いしますm(_ _)m
0372nobodyさん04/06/07 00:29ID:???
>>371
ZIP Archiveを探す前にステータス見ればわかるだろ。
http://ppm.activestate.com/BuildStatus/5.6-G.html

CPANから入れる手もあるけど動く保証はないよ。
http://search.cpan.org/search?m=module&q=GD&s=11
0373nobodyさん04/06/07 00:38ID:KicuegCZ
>>372
レスありがとうございました。
ステータスを見落としてたとは・・・。
FAQでしたね、失礼しました。
0374なぜか解決(?)04/06/07 00:44ID:KicuegCZ
ダメ元でlinux用の.pmファイルを突っ込んでみたら誤魔化せてしまったようです。
棒グラフと折れ線グラフの出力に成功しました。
解決といえるかどうかわかりませんが、報告まで。
0375nobodyさん04/06/07 01:24ID:???
>>374
http://aspn.activestate.com/ASPN/docs/ActivePerl/faq/ActivePerl-faq2.html#repositories
http://theoryx5.uwinnipeg.ca/ppmpackages/
0376nobodyさん04/06/15 17:39ID:???
初心者スレでこちらの存在を教えていただきました。
質問なのですが、WWW::Mechanizeを使おうとすると
Can't locate object method "requests_redirectable" via package "WWW::Mechanize"
(perhaps you forgot to load "WWW::Mechanize"?) at C:/Perl/site/lib/WWW/Mechanize
.pm line 156.
というエラーが出されるのですが、ソースでは
use WWW::Mechanize;
と宣言しています。原因はなんでしょうか?
0377nobodyさん04/06/15 18:01ID:???
WWW::Mechanize は LWP::UserAgent を継承していて
requests_redirectable も LWP::UserAgent のメソッドなので
LWPの方が怪しそうな気が。
WWW::Mechanize と LWP のバージョンはそれぞれいくつじゃい。
037837604/06/16 11:25ID:???
>>377

ありがとうございます。バージョンの問題のようでした。
libwww-perl: 5.51 → 5.75
WWW::Mechanize: 0.48 → 0.72
にアップグレードして動作しました。
0379nobodyさん04/06/22 20:34ID:0XcCSiRM
Net::SMTPとMimi::Entityを使って画像ファイルを複数添付したメールを送信しようとしていたのですが
添付ファイルの総容量がある一定を超えると全ての添付ファイルが送信されなくなってしまいます。
データの処理サイズを指定してその最大値を超えないようにファイルを処理していけば良いのかなと思い
サンプルを探してみたりCAPNでモジュールのマニュアルやソース読んだりしてみたのですが
何をどうやれば良いのかさっぱり分かりません。
どなたかお知恵をお貸し下さい。
038037904/06/22 20:39ID:0XcCSiRM
こんなソースです。
use strict;
use Jcode;
use Net::SMTP;
use MIME::Entity;
use constant SMTPsvr => 'mail.hoge.co.jp';


##元になるHTMLを読み込む
my $htmlData="";
my $line="";
open(FilePt,"testhtml.html");
while($line = <FilePt>){
$htmlData.=$line;
}
close(FilePt);


##メール内容を作成する
my $oMime = MIME::Entity->build(
Type => 'multipart/related',
To => jcode('シロヤギさんさん')->mime_encode(). '<[email protected]>',
From => jcode('クロヤギさん')->mime_encode() . '<[email protected]>',
Subject => 'HTML' . jcode('無題')->mime_encode(),
);
038137904/06/22 20:40ID:0XcCSiRM
$oMime->attach(
Type => 'text/html;charset="iso-2022-jp"',
Data => jcode($htmlData)->jis,
Encoding => '7bit'
);


$oMime->attach(
Path => 'testimg01.jpg',
Type => 'application/octet-stream',
Encoding => 'Base64',
'Content-ID'=> 'testimg01.jpg',
);

$oMime->attach(
Path => 'testimg02.jpg',
Type => 'application/octet-stream',
Encoding => 'Base64',
'Content-ID'=> 'testimg02.jpg',
);


##メール送信
my $oSmtp = Net::SMTP->new(SMTPsvr);
$oSmtp->mail('[email protected]');
$oSmtp->to('[email protected]');
$oSmtp->data();
$oSmtp->datasend($oMime->stringify);
$oSmtp->dataend();
$oSmtp->quit;

情けない質問で申し訳ありませんが、宜しくお願いします。
0382nobodyさん04/06/22 21:58ID:???
このソースを自宅鯖の環境で20Mぐらいのファイルを添付する設定で実行してみたら
postfix が「メールでかすぎ」と言って受信拒否してくれた。
ということは少なくとも postfix まではちゃんと流れて行ったと想定される。

mail.hoge.co.jp の設定を確認してみては?
038337904/06/23 13:09ID:NP7S6l9r
>>382
レスありがとうございます。
一応自己解決(かな?)しました。

昨日の時点では一つのメールソフト(Netscape)だけで確認していたので
今日Outlookやフリーのソフトを複数使って受信確認してみた所
添付ファイル自体はきちんと添付されているらしい事がわかりました。
(HTML形式のメールなのでOutlookでは画像が想定どおり表示され、フリーの
メーラーでは添付処理したファイルがすべて確認できました)

そこでNetscapeの設定等に問題があったのかと思い、色々弄ってみた結果
どうやらHTML形式のメールで使用する画像を添付ファイルとして送信した場合
その総容量がある一定を超えると(どうやら15K以上)、そのメールを最初に表示した場合には
そこで使われている画像を読み込まずにテキストだけを表示しているらしい事が分かりました。
(だから表示文字コード設定を変えたりして再度読み込むと、その時はきちんと画像が表示されました)
どうやらNetscapeのメールソフトのみで起こる問題のようです。

メール内で使ってる画像をWeb上からリンクさせるのは嫌だなぁと思ったので画像を添付しようと思っていたのですが
もしNetScapeのメールソフトで起きている問題を解消できたとしても、画像の添付された重いメールを送信出来るようになるだけで
最終的にはメリットが少ないと思い、ファイルを添付した状態でメールを送る事自体を断念しました。

ご迷惑をお掛けして申し訳ありませんでした。

でも何でネスケでだけ変な動きしたんだろう…添付のさせ方間違ってたのかなぁ?
0384nobodyさん04/06/30 04:37ID:???
テキストファイルや標準入力に対してベイジアンフィルタで分類するモジュールないですか?
10以上のカテゴリに分類できるものを探しています。
■ このスレッドは過去ログ倉庫に格納されています