トップページ⇒php
1001コメント296KB

Perlコーディング初心者質問スレ Part 58

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2008/08/06(水) 22:54:32ID:???
Perlのコーディングで困ってる人のスレです。

【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
「コマンドの意味がわかんない」とかはマニュアル見ましょう。
回答者さんは何でも屋じゃありません。

1: 自分はこういう事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。

最低でも1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。

お勧めサイトは >2 以降

前スレ http://pc11.2ch.net/test/read.cgi/php/1203935151/
過去ログ倉庫 ttp://user.ftth100.com/mirrorhenkan/perl/
0577nobodyさん2009/01/18(日) 00:35:38ID:???
>>576
#!/usr/bin/perl -w
use strict;
package Foo;
sub Bar::speak { __PACKAGE__, ' says ', uc pop, "\n" }
package Bar;
sub Foo::speak { __PACKAGE__, ' says ', lc pop, "\n" }
package main;
print Foo::speak('FOO'), Bar::speak('bar');
__END__

ただしこんな事をしなければいけないようなら設計が悪い。
0578nobodyさん2009/01/18(日) 00:42:15ID:???
モジュールは単体で簡潔するべきかと
0579nobodyさん2009/01/18(日) 00:42:29ID:???
完結
0580nobodyさん2009/01/18(日) 02:00:40ID:???
Sub::Install::install_sub({
code => sub {warn "hoge\n"},
into => 'Hoge',
as => 'say_hoge'
});
0581nobodyさん2009/01/18(日) 02:09:03ID:???
>>577
サンプルありがとうございました。
0582nobodyさん2009/01/18(日) 14:33:21ID:???
自由にやるならClass::MOP辺りが面白いと思う。
0583nobodyさん2009/01/18(日) 20:51:31ID:???
>>577-578
おまえらの感想は求められていない。
聞かれたことだけに答えればよい。
0584nobodyさん2009/01/18(日) 23:39:26ID:???
1.txtの中身
a
b
c

2.txtの中身
d
e
f
↓一行おきに2.txtの中身を挿入したい
a
d
b
e
c
f

先生教えて!
0585nobodyさん2009/01/19(月) 00:00:53ID:???
use strict;
use warnings;

use FileHandle;

my $a = FileHandle->new("< a.txt");
my $b = FileHandle->new("< b.txt");

while (!$a->eof && !$b->eof) {
print $a->getline;
print $b->getline;
}
0586nobodyさん2009/01/19(月) 00:20:53ID:???
FileHandle使わんでもできるだろwww
0587nobodyさん2009/01/19(月) 00:46:38ID:???
> FileHandle使わんでもできるだろwww

FileHandle なり何なりを使わない場合の利点があれば教えて欲しい。
0588nobodyさん2009/01/19(月) 00:47:02ID:???
>>585
あざす
0589nobodyさん2009/01/19(月) 00:52:38ID:???
無駄に CPU 使うからイラネ
0590nobodyさん2009/01/19(月) 00:53:39ID:???
>>589
先輩もっと華麗に仕上げて下さい!
0591nobodyさん2009/01/19(月) 01:02:16ID:???
FileHandle使わない理由は分からんが、使わないならこんな感じかね

use strict;
use warnings;

open my $txta, '<', 'a.txt' or die 'not found a.txt';
open my $txtb, '<', 'b.txt' or die 'not found b.txt';

while (defined (my $ta = <$txta>) and defined (my $tb = <$txtb>)) {
  print $ta;
  print $tb;
}
0592nobodyさん2009/01/19(月) 08:55:47ID:???
無駄に CPU 使うからいらないという理由をもってくると、
use strict; つけることすら無駄になるよね。
どうなのそれ。
0593nobodyさん2009/01/19(月) 09:02:22ID:???
え、俺デバッグ終わったらstrict外すけど
0594nobodyさん2009/01/19(月) 09:08:59ID:???
えぇええええええええええええええええええええええええっ!!
strictはプラグマだから負荷かからないと思ってたけど違うの?
数値的にどれくらい負荷になるの?
0595nobodyさん2009/01/19(月) 09:09:55ID:???
3日後に読めないような汚いコードしか出てこないスレだし
use strict してなくてもかまわんかもしれんなw
0596nobodyさん2009/01/19(月) 09:21:58ID:???
http://naoya.dyndns.org/~naoya/mt/archives/000892.html

以下コピペするよ

> ところで、気になるオブジェクト指向実装における Perl スクリプトの実行
> 速度ですが、Damian Conway 氏による『オブジェクト指向Perlマスターコー
> ス―オブジェクト指向の概念とPerlによる実装方法』の序章にこうあります。
>
> > 一般には、オブジェクト指向Perlによるシステムの実装は、それと等価の
> > 非オブジェクト指向実装よりも高速になることはなく、実際には比較して
> > 通常20〜50パーセントほど低速になる。
> > この数字はオブジェクト指向Perlから多くのユーザを遠ざけるほど十分に
> > 大きいかもしれないが、オブジェクト指向の設計面および実装面のそれを
> > 補うさまざまなり点を見逃すのは悲劇的である。
> > (中略)
> > 残念ながら多くの人は、「20〜50パーセントの低速化」という数字に惑わ
> > され、過去6か月間でプロセッサ速度が2倍になったにもかかわらず、何を
> > 意味しているか忘れがちになる。
0597nobodyさん2009/01/19(月) 09:28:43ID:???
今 perl 使ってる人って、
(1) CGI を速度重視で修行のように書く perl
(2) Moose とか使う oop perl
のどちらかだと思う。

(1) で use strict なしとかだと首つるしかなくね?
0598nobodyさん2009/01/19(月) 09:34:37ID:???
http://blog.livedoor.jp/dankogai/archives/50502585.html

世の中にはおかしな本もあるようでwww
0599nobodyさん2009/01/19(月) 09:37:37ID:???
use strictなしで正しいプログラムを書ける人には不要らしい。

俺には無理。
0600nobodyさん2009/01/19(月) 09:44:29ID:???
use strict 不要派って、
「趣味のプログラムだから、最悪バグっても構わない」
的なこと書いて逃げるよね。
どうしようもない奴らであることは確かだな。

馬鹿はおとなしくマークアップエンジニアとかやってればいいのにな。
0601nobodyさん2009/01/19(月) 11:17:25ID:???
use strictしないで作ったショッピングカートで注文受けてるわw
0602nobodyさん2009/01/19(月) 12:00:06ID:???
俺はKENT様が作ったショッピングカートを使ってる
0603nobodyさん2009/01/19(月) 12:03:05ID:???
KENT って書くと笑いが取れると思ってる?
つまんないから馴れ合い irc で引きこもっとけよ。
0604nobodyさん2009/01/19(月) 12:25:52ID:???
>>601
DBがプレーンテキストのカートシステムで注文受けてる
0605nobodyさん2009/01/19(月) 12:44:11ID:???
>>604
もちろん同じですよw

客の個人情報もテキストだよな?
流石にhtaccessでアクセス制限は敷いているが
0606nobodyさん2009/01/19(月) 12:49:52ID:???
htaccessで?
httpdから見えるところに置いてるのか
0607nobodyさん2009/01/19(月) 12:52:42ID:???
>>605
売り上げ毎に個別のID付けて、売り上げデータだけサーバに残し、
個人情報は残さない。
個人情報+個別IDをメールで自分に送る。
0608nobodyさん2009/01/19(月) 13:11:12ID:???
>>606
レンタル鯖なんだから、httpdから見えないところには置けない・・・と思う。
>>607
メールで個人情報送るのって、案外危ないのでは?
俺は客宛に自動送信するメールにも、住所とかは完全な形では書かないよ
0609nobodyさん2009/01/19(月) 13:14:35ID:???
>>608
httpd から見えるところにデータ置いておく人のやることは矛盾だらけだということがわかった。w
0610nobodyさん2009/01/19(月) 13:17:35ID:???
>>608

root
web
log

みたいなディレクトリ構造になってないの?
0611nobodyさん2009/01/19(月) 13:20:29ID:???
>>610
確かにそんな感じだから、やろうと思えばできるのかなあ・・
0612nobodyさん2009/01/19(月) 13:23:40ID:???
>>608
ヤフオクだって取引ナビはSSLではないしね
大量に抜き取られる心配は無いね
0613nobodyさん2009/01/19(月) 13:23:42ID:???
>>611
> やろうと思えばできる

じゃなくて、できないのなら廃業するべき。
0614nobodyさん2009/01/19(月) 13:29:05ID:???
レン鯖を使うところがそもそも間違ってるんだけど、安全な自鯖を立てる技術がない以上、
レン鯖を使うのが今の俺に取ってはベターだとは思ってる。
最悪、なにか事故が起こったら謝ってしまえばいいだけ。

本題に戻れば、カートをどんな方法で動かしてるかとか、内部仕様的なところは客には見えないから、
ちょっと見栄えのする画面だったら何でもいいんだよw

まあレン鯖だということは分かっちゃうことになるけど、そんなこといちいち調べて買い物しないでしょ?
0615nobodyさん2009/01/19(月) 13:32:35ID:???
>>614
わざわざ負け犬表明しなくていいですよw
06166122009/01/19(月) 13:36:00ID:???
よく考えたら、メールは大概 SSL/TLS で暗号化されているか。
0617nobodyさん2009/01/19(月) 13:36:40ID:???
> 本題に戻れば、カートをどんな方法で動かしてるかとか、
> 内部仕様的なところは客には見えないから、

どこかで配布されてるスクリプトをちょっといじっただけの程度なら
内部仕様バレバレでっせw

もうすでに流出してるかもわからんね。

クレカの大量不正利用がある日起こってみんな気がつくとw
0618nobodyさん2009/01/19(月) 13:37:21ID:???
>>616
> よく考えたら、メールは大概 SSL/TLS で暗号化されているか。

デマですか?
0619nobodyさん2009/01/19(月) 13:38:54ID:???
>>616
客のIDとパスワードが、何らかの理由で漏れたときに、注文時のメールアドレス変えて
第三者に漏れる可能性があるかなという理由なんだよ。
0620nobodyさん2009/01/19(月) 13:40:17ID:???
>>617
スクリプトは1から自分で書いたよ。だから怪しいわけだけどw
クレカなんて扱わないよ、そこまで大規模なら、システムにも金かけるでしょ。
0621nobodyさん2009/01/19(月) 13:40:25ID:???
低脳なウェブエンジニア(笑)の皆さんがいると聞いて飛んできました
0622nobodyさん2009/01/19(月) 13:41:33ID:???
> クレカなんて扱わないよ、そこまで大規模なら、システムにも金かけるでしょ。

クレカ扱うと大規模なの?w
06236122009/01/19(月) 13:49:40ID:???
>>619
そーゆー事か。
うちは、会員制(登録制)にしていないから、IDもPASSも無い。

>>618
大概はいいすぎたか。うちはメールサーバーと自宅の間は大丈夫。
ttp://www.rhein-strasse.de/blog/2004/06/19/becky2-ssl-tls/
0624nobodyさん2009/01/19(月) 13:54:25ID:???
>>623
でも常連客でも会員登録してくれない客はいるね。
弱小だから、信用されてないのは仕方ないけど。


でも、会員登録の有無は関係なく、個人情報がサーバーに残ってることを客は知らんわなw
0625nobodyさん2009/01/19(月) 13:57:51ID:???
> でも、会員登録の有無は関係なく、個人情報がサーバーに残ってることを客は知らんわなw

客を馬鹿だと思ってるの?
キミは何も知らないようだから、クラックされるなり変な script 注入されるなりして痛い目にあえばいいと思う。
0626nobodyさん2009/01/19(月) 14:00:50ID:???
そういえば、つまらない対策だけど、想定外の動作をしたときに、
店宛にエラーの内容をメール送信する機能つけてるわ
0627nobodyさん2009/01/19(月) 14:05:36ID:???
> 最悪、なにか事故が起こったら謝ってしまえばいいだけ。

とか言う人が

> そういえば、つまらない対策だけど、想定外の動作をしたときに、
> 店宛にエラーの内容をメール送信する機能つけてるわ

そんな機能つけてどうするの?自信ないの?腰抜けなの?
0628nobodyさん2009/01/19(月) 14:11:06ID:???
いままで気にしていなかったけど、
Amazonは余裕で個人情報+購入商品のメール送ってくるのなw
0629nobodyさん2009/01/19(月) 14:12:43ID:???
>>614
なんで共有鯖の次が自鯖なんだよwwww
占有鯖は考慮無し?
0630nobodyさん2009/01/19(月) 14:18:38ID:???
>>629
馬鹿すぎてうけるよなw
0631nobodyさん2009/01/19(月) 14:21:51ID:???
ここまでおれの自演
0632nobodyさん2009/01/19(月) 14:26:19ID:???
人格障害乙
0633nobodyさん2009/01/19(月) 14:28:12ID:???
>>628
本当は住所は書いたメールを送りたい。間違えて入力する客がたまにいるから。
でも、住所を書くことのリスクを負うことを考えると、やっぱり書けないね。
間違えて入力する客が悪いんだし。
0634nobodyさん2009/01/19(月) 14:29:26ID:???
> でも、住所を書くことのリスクを負うことを考えると、やっぱり書けないね。
> 間違えて入力する客が悪いんだし。

論理が一貫していませんよ。
0635nobodyさん2009/01/19(月) 14:29:56ID:???
>>628
今までの流れ見ると
「アマゾンでさえやってるから、いいんじゃね?」
くらいの発言がほしい物だ。
0636nobodyさん2009/01/19(月) 14:41:05ID:???
それから、オンラインショップのアドレス晒したうえで、
「クラックしてみろ」とか「保存してある個人情報抜けるなら抜いてみろ」とか
ほしいものだ。

結局小心者の腰抜けなんですね。わかります。
0637nobodyさん2009/01/19(月) 15:40:28ID:???
・use strictする
・配布スクリプトは使わない
・プレーンテキストで保存しない
・ファイルならhttpdから見えないところに置く
・メールに個人情報は載せない
・事故が起こったら謝る

こんな感じにすればいいってことですか?
0638nobodyさん2009/01/19(月) 15:50:20ID:???
・Winnyは使わない
0639nobodyさん2009/01/19(月) 15:50:35ID:???
事故が起こったら適切な対応をする、だろ。
0640nobodyさん2009/01/19(月) 17:04:42ID:???
・漏れた場合は5500円払う

を追加してくれw
ttp://slashdot.jp/article.pl?sid=07/12/15/0035257
0641nobodyさん2009/01/19(月) 17:42:20ID:???
>>637
間違ってる。
0642nobodyさん2009/01/19(月) 19:02:39ID:???
FileHandleからここまでの脱線がウケる

みんなバカなのか?わざとだろ?
0643nobodyさん2009/01/19(月) 20:24:49ID:???
自鯖スレだと思って呼んでたらPerlスレだった・・・
0644nobodyさん2009/01/19(月) 20:44:17ID:???
まあ過疎スレだから、枯れ木も山の賑いて事で
0645nobodyさん2009/01/19(月) 20:47:03ID:???
>>644
ここより過疎で雑談に適したスレは他にも沢山あるから
自由にリサイクルしてくれ。

【総合】 Webprog板質問雑談スレッド 1
http://pc11.2ch.net/test/read.cgi/php/1131016915/

コレカラWebProgオ勉強シヨウトシテル香具師ガ雑談スルスレ
http://pc11.2ch.net/test/read.cgi/php/1049476765/
0646nobodyさん2009/01/20(火) 01:15:18ID:???
何この流れw

中級者向けの本を教えてくだしあ。基礎やcpan巡りはできるようになったけど、その先、みたいな。
0647nobodyさん2009/01/20(火) 01:30:22ID:???
lestrrat さんの本とか薦める予定調和ですか
0648nobodyさん2009/01/20(火) 01:41:50ID:???
サーバーAとサーバーB間でデータを投げたり、レスポンスを返して貰ったりするようなものを作るとき
皆さんだったらどんなのを使います?

自分は今、SOAPとかってどうなんだろう?と思ってるしだいです。
最悪返すデータが格納されてるURLを投げる方向だったりしますがw
0649nobodyさん2009/01/20(火) 02:01:04ID:???
>>646
添付ドキュメントをじっくり全部読む
0650nobodyさん2009/01/20(火) 04:10:49ID:???
>>648
ジョブキューとか API とかについて調べてみればいいと思う。
0651nobodyさん2009/01/20(火) 06:07:59ID:???
>>648
勝手にやっていいなら、RESTでもJSONPでも。
0652nobodyさん2009/01/20(火) 20:20:07ID:???
納品時にはstrictもwarningsも外すよ
0653nobodyさん2009/01/21(水) 03:44:02ID:eckl057E
#!/usr/bin/perl
{
    package Hoge;
    use strict;
    use warnings;

    sub sub1 { print "sub1\n" }
}

{
    package main;
    use strict;
    use warnings;

    no strict 'refs';

    my $hoge1 = *{"Hoge::sub1"};
    $hoge1->();

    my $class = 'Hoge';
    my $hoge2 = *{"$class::sub1"};
    $hoge2->();
}

# 前者が上手くいき、後者が上手くいかない理由と、
# 後者の代替となる方法を教えて頂けないでしょうか?
0654nobodyさん2009/01/21(水) 04:53:39ID:???
> 納品時にはstrictもwarningsも外すよ

そして馬鹿 perler と呼ばれるわけですね。
0655nobodyさん2009/01/21(水) 07:48:32ID:???
>>653
my $hoge2 = *{"${class}::sub1"};
理由はエラーメッセージ読め。
0656nobodyさん2009/01/21(水) 09:03:09ID:???
出社前に

my $hoge2 = *{"$class\::sub1"};
0657nobodyさん2009/01/21(水) 10:38:00ID:dhsSLEKy
utf8の文字が半角か全角かを判別するにはどのようにしたらよいのでしょうか?
0658nobodyさん2009/01/21(水) 10:43:42ID:???
あんぱっく すりゃわかるさ
0659nobodyさん2009/01/21(水) 12:20:19ID:???
>>657
正規表現なら、\p{ASCII}でマッチさせるとか。
0660nobodyさん2009/01/21(水) 16:59:05ID:???
ActivePerlで起動中のアプリケーションを終了させる事はできますか?
06616602009/01/21(水) 17:03:30ID:???
やりたい事は起動中のアプリケーションの設定ファイルを
書き換えて、そのアプリを再起動させたいのです。
0662nobodyさん2009/01/21(水) 17:33:53ID:???
Windows であれば、Win32API を扱えるモジュールがあるので、SendMessage を指定アプリケーションに投げる方法が取れるかと思います。
06636602009/01/21(水) 17:48:12ID:???
検索結果から簡単に見つかると思ったら甘かった…。

>>662
検索キーワードありがとうございます。
0664nobodyさん2009/01/22(木) 09:37:23ID:???
勉強の為にメールフォームを書いてみました。
掲示板に改造しようと思っているのですが、
さすがに素のまま設置するのはスパム投稿で酷い目に会いそうな気がします。
スパム投稿対策にはどういうのを施せばいいのか良くわかりません。
モダンなスパム対策にはどういうのがあるのでしょうか?
良ければ参考になるようなものをご教示お願いします。
0665nobodyさん2009/01/22(木) 10:21:48ID:???
画像認証
ssl
0666nobodyさん2009/01/22(木) 10:31:08ID:???
モダンなんて言ってる時点でアホだろ
0667nobodyさん2009/01/22(木) 10:57:51ID:???
ぐぐれ
0668nobodyさん2009/01/23(金) 08:02:36ID:???
ぐぐれ(笑)
0669nobodyさん2009/01/23(金) 13:40:01ID:???
これを読めば、モダンなPerlが書ける

モダンPerl入門
http://www.amazon.co.jp/dp/4798119172/
0670nobodyさん2009/01/23(金) 15:30:04ID:???
発売前の本ですよw
0671nobodyさん2009/01/23(金) 15:50:35ID:???
perlでモダン焼きを作れますか?
0672nobodyさん2009/01/23(金) 16:25:33ID:???
モダンモダン言いすぎてカスタマーサポートに飛ばされるやつとかいるから気をつけろよ
0673nobodyさん2009/01/25(日) 14:28:30ID:???
おれはこのスレで一番モボだと言われた男
0674nobodyさん2009/01/26(月) 12:57:03ID:???

 、        ヽ
 |ヽ ト、  ト、 ト、 、.`、
/|l. l. | |l l | | l |l.| |l. l
/' j/ ノ|ル'/レ〃j/l |
-‐7" ヾー---┐|_.j
 ̄   ./゙ニ,ニF、'' l _ヽ
::   ,.,. |ヽ 」9L.` K }.|
    l'  """  l ) /
  h、,.ヘ.      レ'/
          レ′
 r.二二.)     /  
  ≡≡    ,イ
.       / !
\   /  ├、
::::::` ̄´   /  !ハ.
0675nobodyさん2009/01/26(月) 18:15:16ID:???
画像を取得→加工→表示させるプログラムを作ろうと思っています。
ググってみたんですが、ローカルの画像を加工して保存する方法ばかりで、
他のウェブサイトから画像を取得→加工→表示する方法がわかりません。

参考になるサイトでもいいので、どなたか教えてもらえませんか?
0676nobodyさん2009/01/26(月) 18:22:23ID:???
(1)他のウェブサイトから画像を取得
(2)加工→表示
■ このスレッドは過去ログ倉庫に格納されています