【Perl上級者コーナーPart01】at PHP
【Perl上級者コーナーPart01】 - 暇つぶし2ch402:nobodyさん
04/06/08 21:16
>>388
なるほど!
そういえば、携帯ページつくるときによくつかってたけど、コメントで使うのは思いつかなんだ。
らりあとう!!

403:388
04/06/08 22:17
>>402
どういたまして。
ちなみに今は
タブと■を組み合わせて見やすくしてる。

>>401
メールを受け取る人が一定なら、
その人のマシンで公開鍵と秘密鍵を作って、
その公開鍵を使ってサーバで暗号化する必要がある??
あんま詳しくないから興味あるかも。

404:nobodyさん
04/06/08 23:34
>401
URLリンク(search.cpan.org)

405:きのこる先生 ◆FmKame.i.E
04/06/10 07:13
      _,,,......,,__
  /_~ ,,...:::_::;; ~"'ヽ
 (,, '"ヾヽ  i|i //^''ヽ,,)
   ^ :'⌒i    i⌒"
      | (;゚Д゚) < 今まで様々な404を見てきたが
      |(ノ  |)      お前が一番coolですね
      |    |
      ヽ _ノ
       U"U


406:nobodyさん
05/11/13 21:07:49
えらく長寿だなぁ、このスレ・・・勃って(w から三年半、前レス>>405からも一年半経ってる。

407:nobodyさん
05/11/14 23:07:11
pod使ってサブルーチンごとにコメントを挟むと間延びした感じになってなんか嫌だったんだけど・・・
=の前後に空白行がないとpodparserでXHTML化したときにうまく読んでくれないし。

どうよ?

408:nobodyさん
05/12/06 03:38:10 rOcNbm6R
01と最初からスレタイしたら伸びないというのを実践してるな

409:nobodyさん
05/12/28 12:54:03 RY3kh/X5
URLリンク(www002.upp.so-net.ne.jp)

ここのMulti Wing BBSをDLして設定してうpまで
終わったんですが、メインのwingmulti.cgiにアクセスして
設定したパスワードを入力しても、パスワードエラーと出ます。

何度設定しなおしてもパスワードエラーに引っかかるんですが
これって単なるバグでしょうか?

分かる方いたら、試してもらえませんか?

410:nobodyさん
05/12/28 12:57:36
>>409
もちろんお前はPerl上級者なんだろうな

411:nobodyさん
05/12/28 13:02:41
>>410
初級レベルです^^;
上級者の方じゃないと分からないと思ったので、すいません。

412:nobodyさん
05/12/28 14:52:10
質問するスレじゃねぇ

413:nobodyさん
06/02/05 07:47:15 VJ915kfQ
DBICどうすか。
0.5から::Schemaに移行とかなんとか。

414:nobodyさん
06/10/08 01:37:17
wikipediaにはトリップ生成は

$tripkey = "#istrip";
$tripkey = substr($tripkey,1,);
$salt = substr($tripkey.'H.',1,2);
$salt =~ s/[^\.-z]/\./go;
$salt =~ tr/:;<=>?@[\\]^_`/ABCDEFGabcdef/;
$trip = crypt($tripkey,$salt);
$trip = substr($trip,-10);
$trip = '◆'.$trip;
print "$trip";

って書かれてるが

マルチバイト文字をcryptに入れるとエラーになるんだが。

415:414
06/10/08 23:31:27 LWtT3Slw
どうすればいい?
Perl5.8.8だからなのか?
誰か教えてくれねーか?

416:nobodyさん
06/10/08 23:54:05
>>414-415
ここは上級者スレ。その程度を自分で解決出来ない奴は立ち入り禁止。

417:414
06/10/09 00:08:25 b33Q2pbi
工エエェェ(´゚д゚`)ェェエエ工w

418:414
06/10/09 00:09:17 b33Q2pbi
UTF8で書いてる所為かも。
SJISに変換して入れてみるか。

419:414 ◆SQ2Wyjdi7M
06/10/09 00:13:33 b33Q2pbi
うまくいったっぽいw

420:414 ◆SQ2Wyjdi7M
06/10/09 00:26:29 b33Q2pbi
まぁ、テキトウにまとめ。
しなくてもいいだろうが、スレつかっておいて自己解決して放置っつースタイルが嫌いなので。

俺の場合。
出力をXHTMLに準拠させたいが、ファイルの先頭でXML宣言をするとIEで厄介なので、それを避けるために出力をUTF8にしたかった。
そんなときにPerl5.8は内部処理とかUTF8にしたぞ的なことを知ったので、use utf8;とかしてコードを書いていたわけだが、
UTF8のマルチバイト文字列をcrypt関数の引数として与えるとエラーが出るという問題にあった。

まぁ、crypt使う理由が2ch互換のトリップを生成することだったわけで、そのときにUTF8でcrypt使用としてた辺りがあほなんだが、
1日考えるのやめてカラオケとか逝ってたら、脳みそすっきりしてこのことに気づいたので解決した。

そんでUTF8→SJIS変換したら、すんなり成功した。

参考までにソース載せると

package パッケージ名;
use utf8;
use Encode;
return 1;

sub makeTrip{ # 引数 = \$tripkey(utf8)
my $tripkey = $_[0];
my $salt;
$$tripkey = encode('shiftjis', $$tripkey);
$salt = substr($$tripkey.'H.',1,2);
$salt =~ s/[^\.-z]/\./go;
$salt =~ tr/:;<=>?@[\\]^_`/ABCDEFGabcdef/;
$$tripkey = crypt($$tripkey,$salt);
$$tripkey = substr($$tripkey,-10);
return;
}


421:nobodyさん
06/10/10 20:26:03
超絶的確な>>416のレスを読まない
>>414に萎え

てか、文字コードの違いもわからず上級者気取りか・・・

422:nobodyさん
06/10/10 22:14:51
もうおわったことにぐだぐだいってる >>421 のしつこきもちわるさにほげ

423:nobodyさん
06/10/12 14:25:18
一応天才って言われるけど…これ常套だべ?

BEGIN {
$vo = '栄昇';
$g = '優';
$pf = '等';

}
コードに入れてない奴は今すぐ入れたほうが良いよ、平和になるし


424:nobodyさん
06/10/12 16:16:15
日本語でok

425:nobodyさん
06/10/14 00:22:11
上級者専用スレなんて初めて開いた・・
Gimpって画像処理ソフト、CGIから操るのに成功した人っています?
ImageMagickを使ってみて、なかなか面白いんだけど、文字の加工は貧弱なので
Gimp試してみたものの、全然動かないのです。

426:nobodyさん
06/10/14 00:26:36
>>425
キサマには初心者スレすら生ぬるい。

427:nobodyさん
06/10/14 00:38:50
煽りに用はない!by ken


428:nobodyさん
06/11/14 14:47:50 M1pI9RkN
>>420
では上級者的指摘を

use utf8環境下でsubstrで2文字取り出すというのがどういう意味なのか
分からないのがお前の敗因。
我々上級者はuse utf8はuse byte;は併せて覚えている。

つ~かcryptの第2引数は初めの2バイト以外無視する仕様だから
わざわざsubstrしてる時点で中級者とも言えない。

って、全くテストもしないで亀レスだけしてみる。

429:nobodyさん
06/11/15 07:29:44
cryptはDESかMD5かで有効なsaltの文字数が違うよ

430:nobodyさん
07/01/24 20:02:36

簡単にお金稼ぎ!!!

以下の手順でやれば、無料でお金稼ぎができます。
企業も広告の宣伝になるから、お金をくれるわけです。
最初の1日目で 2000 円~3000 円 は確実に稼げます。
実際の作業は数十分程度、1時間はかかりません。

(1) URLリンク(pointdream.jp)
   ↑このアドレスからサイトに行く。
(2)無料会員登録をする。
 ※フリーメールアドレスでもOK。
(3)ポイントを稼ぎます。
 懸賞の応募や無料会員登録をすればするほど、
 ポイントが貰えます。
(4) 友達を増やせば、後は何もしなくても
 定期的に、友達還元ポイントがドッサリ入ってきます。

これで現金を稼ぐといいですよ!!!

登録(応募)はこちらから↓
URLリンク(pointdream.jp)

431:nobodyさん
07/02/10 20:43:16

簡単にお金稼ぎ!!!

以下の手順でやれば、無料でお金稼ぎができます。
企業も広告の宣伝になるから、お金をくれるわけです。
最初の1日目で 2000 円~3000 円 は確実に稼げます。
実際の作業は数十分程度、1時間はかかりません。

(1) URLリンク(blackjack.lxl.jp)
   ↑このアドレスからサイトに行く。
(2) ゲットマネー登録サイトに移動するので、
 そこで無料会員登録をする。
 ※フリーメールアドレスでもOK。
(3)ポイントを稼ぎます。
 懸賞の応募や無料会員登録をすればするほど、
 ポイントが貰えます。
 他にも沢山種類があるので、1日目で
 約 20000 ポイントは GET できます。
(4) 10000 ポイントから、現金に交換できます。
(5)キャッシュバックという所がありますので、
 そこから交換をしましょう。

これで現金を稼ぐといいですよ!!!

無料会員登録はこちらから↓
URLリンク(blackjack.lxl.jp)

432:nobodyさん
07/03/26 17:41:13 3MEiX5hy
上級者向けの質問かどうか分からないけれど、他に該当スレが思いつかなかったのでここで質問させてください。

CPANで落とせるNet::SMTP_authってモジュールがあって、それはNet::SMTPのサブクラスになっていて
ソースの中ではauth()とauth_types()のオーバーライドしかしていない。
SMTP_authでメール送信するには587番ポート使う筈で、それはnew()したときの
最初のサーバへの通信で既に「587を使う」と指定しないといけないと思うのだけど
どこをどう探してもその記述が見つからない。
NET::Configの中かなぁと思ったのだけど、それも違うっぽい。
どうやって587ポートを指定させているか、誰かご存知の方いませんか?

SMTP_authモジュールを使いたくて色々調べていたらこの問題に行き着いて、どうにも納得できなくて気持ち悪いので
ヒントだけでも教えていただけると嬉しいです。

433:nobodyさん
07/03/26 22:13:50 sZyxWGW4
>>432
Authen::SASLで何やってるかわかんないけど、ポート指定してるっぽいのはここだね。

my $conn = $sasl->client_new("smtp", $host);#, "noplaintext noanonymous");



434:nobodyさん
07/03/26 23:55:40
>>432
> SMTP_authでメール送信するには587番ポート使う筈
これ間違い。

○ submission portを使用するときはSMTP AUTHが必要。

435:nobodyさん
07/03/27 20:09:45
Net::SMTP->new( Port=>587 );

Net::SMTPなら、こんなんじゃなかったっけ

436:432
07/03/30 15:34:09
>>433
ありがとうございます。
まだ色々分かって無いですが、また調べてみようと思います。

>>434
まだ理解が足りていなかったみたいです
ご指摘ありがとうございます。

>>435
そうですよね、やっぱし。
でも587というポート番号を指定してる場所がどこにもなくて「あれ?おかしくね?」
と感じて調べ始めたら泥沼に、、、orz


437:nobodyさん
07/04/02 21:36:14
OP25Bなら、サブミッションポートで接続してSMTP AUTHするわけだから
ポートは自分で設定する必要があるよ。


438:nobodyさん
07/06/19 22:29:14 Ye7oVo0e
Perlに触れて2ヶ月余りの者ですが皆様のお知恵を拝借したい事があります。
フォームを作成し、大量の文字を入力してメールを送信するようにすると、
500文字目辺りが文字化けしてしまいます。
その部分から一定の周期で文字化けが発生しています。
300文字程度までなら全然平気なのですが。。
あとそのメールのログをとっているんですけどログの方は大量に文字をうっても問題なく蓄積されていました。
この事からプログラム的な問題ではなく、
鯖にインストールされている sendmail が怪しいかと思うのですが、
バージョンが古いとこのような問題が起こる等、何らかの情報はご存知ないでしょうか??
宜しくお願い致します。

439:nobodyさん
07/06/20 00:03:45
>>438
2ヶ月で上級者になるとは凄い才能だね。では頑張れ。

440:nobodyさん
07/06/20 00:59:21
>>439
低級者のレスはいりません

441:nobodyさん
07/06/20 01:26:40
>>438
一行に500文字が入っているの?
SMTPの仕様だか、実装だかに一行の最大文字数みたいな制限があったはず。
途中に改行入れていて500文字だったらスマン、わからん。

442:nobodyさん
07/06/20 06:41:47
>>441, >>443-
低級者のレスはいりません。

443:438
07/06/20 10:56:39
>>441
どうやらビンゴのようです。
改行入れると化けません。
SMTPの仕様でしたか。。。
この仕様について色々と調べてみたいと思います。
大変参考になりました、ありがとうございます!

444:438
07/06/20 13:04:00
完全に文字化けが直りました。
>>441さんに多謝!

445: ◆lVJAPUTeX.
07/07/24 21:05:58
>>441

RFC2822によれば、CRLFを入れて1000文字 (オクテット) ですね。
Sendmailでは長い行を自動的に分割します。
500文字というのはShift_JISで書かれた日本語での換算かな?

…とここまで書いて1ヶ月前の記事ってのに気づいた。まあいいや。

446:nobodyさん
07/08/19 05:01:02 LoxscrBM
Perlからメールアカウントの追加をしたいんですが、どうやったらええんでしょ?
MTAはqmailでvpopmailでバーチャルドメイン運用してます。

root権限もあります。
perlからの会員登録と同時にメールアカウント作成みたいなもんをしたいんですが。


447:446
07/08/21 17:15:45 HBIrwO1t
誰か~~

助けておくれ><;


448:nobodyさん
07/08/21 19:24:10
UNIXユーザーか仮想ユーザーか、自力でシミュレートして登録するか
外部コマンドを利用するか等で実現方法が変わる。

外部コマンド使う場合
・パイプ、system関数 or バッククォートで外部コマンドを実行
・uidをrootにしsetuidする
・強制的にテイントモードになるのでサニタイズする
ここら辺注意すれば比較的簡単に出来ると思う。

449:446
07/08/23 03:02:56 i/ueFIKi
>>448
ありがとうございます。
おかげさまで解決しました。
Insecure $ENV{PATH} while running setuid at ./hoge.cgi line xx.
というエラーが出て少し悩みましたが。


450:446
07/08/23 22:35:13 i/ueFIKi
すいません。もう一つ質問です。

setuidでroot権限で実行する方法なんですが、mod-perlだとroot権限になりませんね。
できればmod-perlで動かしたいんですが、方法はあるんでしょうか?



451:nobodyさん
07/08/24 06:17:27 ZilCg/Oy
これはまたひどい後出し

452:nobodyさん
07/08/24 13:37:27
>>450
mod_perlの動作原理をちょっと考えればわかることだが、不可能

453:nobodyさん
07/08/24 17:19:07
・BIGSECURITYHOLEオプションでapacheをrootで動作させる。
・外部コマンドを実行するプログラム(setuidされた)をmod_perlから呼び出す。
・sudoを使う
思いつくのはこんぐらいかな。

454:446
07/08/24 23:47:48 IBL+ZrlN
>>453
ありがとうございます。
apacheをrootで動かすのは怖くてできません><;

2つ目のプログラムを分けてmod-perlから呼び出すプログラムに数値を渡すにはファイル書き込みか何かで渡す他ないんですよね?
これならできそうです。

3つ目のsudoは
perlプログラム内(test.cgi)に以下の外部コマンド
`script /dev/null -q -c 'sudo -u root /home/vpopmail/bin/vadduser -r hoge\@hogehoge.com'`;

visudoにて以下を追加
apache ALL=(root) NOPASSWD: /var/www/test.cgi

で実行してみましたが、secureログには
sudo: pam_unix(sudo:auth): authentication failure;
と出ます。sudoがシンプルで良いと思っているのですが、認証失敗は何が原因でしょうか?


455:446
07/08/24 23:57:13 IBL+ZrlN
あ。test.cgi自体をsudoで動作させなきゃ意味ないですよね。
どうしたらtest.cgiをsudoで動作させられるんでしょう?><;



456:nobodyさん
07/08/25 02:55:37
それはperlと関係ない話だからなぁ
sudoでググれば普通にわかるべ

つーか、そもそもmod_perl使わなきゃいいだけの話じゃないのか?
そんな何回も実行するようなもんじゃないし、危ない橋を渡ることもあるまいに

457:446
07/08/25 03:35:05 YKfJDMUn
あ。解決しました。
visudoには
apache ALL=(root) NOPASSWD: /home/vpopmail/bin/vadduser
ですね。

教えてくださった方々ありがとうございました。


458:nobodyさん
07/08/25 07:04:35 uu0LXyl+
URLリンク(icomu.jp)

459:nobodyさん
07/08/25 08:17:45 XkW9fGs3
URLリンク(inoken.tv)

460:nobodyさん
07/10/08 21:00:42
さげさげ


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch