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

Perl 初心者コーナー Part24

レス数が1000を超えています。これ以上書き込みはできません。
0001 ◆fBgbHI04bQ 03/06/07 22:30ID:GbQKLcPE
いらっしゃーい、Perlのコーディングで困ってる人のスレです。

【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。

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

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


CGIだけど、なんか質問ある? Part 10
http://pc2.2ch.net/test/read.cgi/php/1048686475/
【Perl,CGI】参考書籍 第三版
http://pc2.2ch.net/test/read.cgi/php/1030209573/
CGIに依存しないPerlの話題一般/Part2
http://pc2.2ch.net/test/read.cgi/php/1030548610/
スクリプトの改造依頼は、【 スクリプト改造工房 PART 6 】
http://pc2.2ch.net/test/read.cgi/php/1047806915/

過去ログやお勧めサイトは >>2-10
095137403/06/27 14:01ID:???
もまいらひまだな

print s//uc join('',unpack('A1 x4 A1 x7 A1 x4 A1', <<EOT))/e && $_,"\n";
Just another Perl Hacker
EOT
0952nobodyさん03/06/27 14:03ID:???
ひまですが、何か?
0953nobodyさん03/06/27 14:24ID:gWCPnMBP
レスTHX
>>950
全部にマッチしてしまうので、必ず最後の要素番号返してくれます。
>>949
調べてみます。
095494703/06/27 14:25ID:???
>>953>>947です
0955nobodyさん03/06/27 14:32ID:???
>>953
変数を正規表現に使うときは、メタ文字が入っているとうまくいかないから、
quoteする。
metaquote($str)または\Q$str\E
全部にマッチしちゃうってのは、/^$str$/してないから、一部にひっかかって
るんじゃないかな。

095694103/06/27 14:38ID:???
>>942
やばい、何をやっているかわからない。。。
けど理解してがんがってみます。
ありがとうございます。
095794703/06/27 14:39ID:???
>>949,>>950,>>955
>>955の書き込みを見る前にindexでとりあえずの解決しました。
for($i = 0;$i < @list;$i++){
$idx = index($list[i],$str);
if($idx ne -1){
$result = $i;
}
}
としました
ありがとうございました。
>>955さんのが原因かと思われるのでそちらも勉強してみます。
感謝です
095895003/06/27 14:55ID:???
「変数に正規表現を」って言うから、引数にメタ文字を入れてるんだと思った……
要は正規表現を使って(変数に入った)文字列を検索したかったのね。
095994703/06/27 15:02ID:???
>>958
ごめん、よくわかんない(TT
0960nobodyさん03/06/27 15:07ID:???
CSVからデータを読み込んで、ちょっとした条件でしぼりこんで一覧表示するだけなのに、
一覧のうち1部だけが文字化けするって、
何が考えられますか?


なお、スクリプトは、EUC(スクリプト中の処理も全てEUCで処理してます)、
CSVはSJIS、HTML吐き出しもSJISです。

文字化けしてしまってるところは、EUCになっちゃってます。
0961nobodyさん03/06/27 15:14ID:???
>>960
文字コード変換を自動判別に頼ってるため、Shift_JIS文字列をEUC
と見間違えるんだと思う。

CSVの1レコードとかテーブル全体を一括で文字コード変換するか、
明示的に変換元と変換先の文字コードを文字コード変換ルーチンに指示
するかすれば問題は起こりにくくなる。

あと、いわゆる半角カナが多いShift_JIS文字列もEUCと誤認識
しやすい(場合によっては区別が付かない)。
0962nobodyさん03/06/27 15:15ID:???
条件ってのが、EUCで比較しててそのまま出力に流してしまってるからでは?
0963nobodyさん03/06/27 15:21ID:???
>>960
スクリプトとデータの文字コード統一しる。
その方が変換しないで済むから早いだろうに。
0964nobodyさん03/06/27 15:54ID:???
>>956
この方法の解説は確かperlメモに書いてあった。
だがしかしperlメモ説明がくどいから逆に分かり難いかも。
でも便利だから一度は見ておけば?
0965nobodyさん03/06/27 17:01ID:???
bccに2人を入れたいとき、
メールソフトと同じように、

$bcc = 'amano@alive.ne.jp, mine@alive.ne.jp';
if (!open(OUT,"| $sendmail -t")) { &error('申し訳ありませんが何らかの原因で処理できません.'); }
#中略
print OUT "Bcc: $bcc\n";
#後略
で問題ないですよね?

実験だと問題なさそうなんですが、
環境に依存するとなんなんで、一応質問・・・
0966nobodyさん03/06/27 20:05ID:???
$sendmail に sendmail のパスが入ってるんだろうけど、
その sendmail が Sendmail とは限らない。

とか言ってみるテスト。
ようはそのプログラム次第ってこと。
Socket使うとかしてみたら?
その手のモジュールも転がってるし。
096796503/06/27 20:21ID:???
>>966
いや、sendmailのパス入ってます。
sendmailだったら、他の環境によらず大丈夫ってことですか?

Socketの勉強は、まだ少しペンディングにしてるので。。。
0968nobodyさん03/06/27 20:24ID:???
>>967
適当なライブラリ探してきたら、Socket知らないでもできそうですよ。
やったことないですが。
0969nobodyさん03/06/27 20:53ID:???
(´-`).。oO(この世にはsocketしか知らない香具師もいるのよねぇ、、、@この板を荒している香具師とか)
0970nobodyさん03/06/27 21:05ID:???
(´-`).。oO(本7か…)
0971nobodyさん03/06/27 21:26ID:???
sendmail の sendmail と qmail の sendmail で利用可能なオプションとか違うよ。
それ以外のは知らないけど。
つか、スレ違いぎみな気が。
0972ふつー03/06/27 22:05ID:???
use Net::DNS;
use Net::SMTP;
0973nobodyさん03/06/27 22:34ID:???
すんごい素朴な疑問なんですが、
なぜみんなヒアドキュメントを使うんでしょう?

   print << "END_OF_HTML";
      ほげ
      ふが
      ひげ
END_OF_HTML
っていう風に、最後を、インデントつけれないから、すごくコードがみづらくなって、
個人的にはいやなんですけど。
(なんかのオライリー本にもそんなことかいてあったきがする)

やっぱり、END_OF_HTMLみたいに意味をかけるからいいんでしょうか?

ちなみに自分は、ほとんど
       print qq|
             ふが
             ほげ
            |;
ってやってます。
097496503/06/27 22:36ID:???
やばい、qmailとsendmailてまったく別物だと思ってました。
(だから、>>971 でqmail の sendmail ってなんだ?と思った)
スレ違いぎみなので、逝って勉強してきます。
0975nobodyさん03/06/27 22:39ID:???
>>973
料理本でも立ち読みしてくれ
0976nobodyさん03/06/27 22:58ID:???
>>973
   print << "  END_OF_HTML";
      ほげ
      ふが
      ひげ
   END_OF_HTML
097797303/06/27 23:25ID:???
>>975
料理本ってなんかの隠語?
097897303/06/27 23:26ID:???
>>976
そ、それも、気持ち悪くないですか?個人差かな?
0979nobodyさん03/06/27 23:33ID:???
まあ、あまり深いインデントにならないコードを書いて気休めにするしかないな
0980nobodyさん03/06/27 23:36ID:???
まぁ、個人の好き嫌いじゃないの?
'
hoge
';
<< 'HOGE';
hoge
HOGE
ちなみに私は前者が多いかな。
インデントがと言うか、楽だから。
0981nobodyさん03/06/27 23:41ID:???
>977
クックブック
0982nobodyさん03/06/27 23:42ID:???
>>977
オライリーのPerl本を色々物色してれば分かる。
098398203/06/27 23:43ID:???
かぶった
0984nobodyさん03/06/27 23:53ID:???
次スレまだー?
0985nobodyさん03/06/28 00:01ID:???
Perl 初心者コーディングコーナー Part25

なんてどお?
0986nobodyさん03/06/28 00:26ID:???
いいね。たてとけ。
0987nobodyさん03/06/28 00:34ID:???
ミンキーモモに出てくる
0988nobodyさん03/06/28 00:37ID:???
普通なら
Perlコーディング 初心者コーナー Part25
じゃないのか?
0989nobodyさん03/06/28 00:51ID:???
CGI以外 Perl初心者コーナー Part25
0990nobodyさん03/06/28 01:03ID:???
せめてCGIを除外する旨のことはテンプレに書いてほしい。
0991nobodyさん03/06/28 01:08ID:???
別にcgiであっても構わないけど、perlに関係ない話はスレ違い
0992nobodyさん03/06/28 01:11ID:???
CGI以外ならむしろム板だろ。
0993nobodyさん03/06/28 01:13ID:???
>>992 ここは何の為の板なのかと小一時間。
0994nobodyさん03/06/28 01:14ID:???
WebProg 板なのになんでCGIダメなんだ
0995nobodyさん03/06/28 01:15ID:???
s/WebProg板/過疎板/;
0996nobodyさん03/06/28 01:19ID:???
Perl コーディング初心者質問コーナー Part25
http://pc2.2ch.net/test/read.cgi/php/1056730690/

立てたよ
0997nobodyさん03/06/28 01:28ID:???
997
0998nobodyさん03/06/28 01:29ID:???
998


0999nobodyさん03/06/28 01:32ID:???
999?
1000nobodyさん03/06/28 01:32ID:???
1000
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。