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

【Perl】初心者コーナー Part19

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん03/01/11 13:52ID:???
初めに→「perl」その物のスレです。

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

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

あとは>>2-10にまかせた。
0755nobodyさん03/01/31 21:27ID:???
じゃあ速くて格好いいのを書いてください。
075672703/01/31 21:49ID:5ww5eJFm
require 'cgi-lib.pl';
&ReadPlarse(*form);
require 'jcode.pl';
&jcode'convert(*form,'sjis');
$data = $form{'name'}\n$form{'mail'}$form{'sex'}\n$form{'ryori'}\n$form{'message'}\n\n
open(ENQ, ">>$enqdata.dat")||do{print "ERR";exit;};
#flock(ENQ, 2);
print ENQ $data;
#flock(ENQ, 8);
close(ENQ);
print "Content-type:text/html\n\n";
print >> "END_OF_HTML";
<HTML>
<HEAD>
<TITEL>有難う御座いました</TITLE>
</HEAD>
<BODY>
アンケートは送信されました!<BR>
またのお越しをお待ちしています
</BODY>
</HTML>
END_OF_HTML

これを動かしたらシンタックスえらーがでたけどなんで?
公開されているプログラムなのに。
http://www.salut.ne.jp/bf/wmh/seminar/c010/index.php3
0757nobodyさん03/01/31 22:14ID:1gqujj9y
>>756
またおまえか。馬鹿かお前は。
エラーが出たんならどんなエラーがさらさんとわからんだろうが。
本気で答えて欲しいのならそれなりの情報を出せこの厨房が。
0758nobodyさん03/01/31 22:17ID:???
>>734
確か、&はいっさいCGI側で変換しない方がいいよ、
っていう文章を読んだことがある気がしたんだけどソース失念。

もし&ltr;のように封じたい文字参照があれば
狙い打ちでエスケープすれば済むし。
0759not75403/01/31 22:25ID:???
>>753
my %refchr = qw(hearts & clubs & diams & spades &);
$text =~ s/&(\w+?);/($refchr{$1} or '&')."$1;"/ge;
もちっとマシな書き方があるかも。

>>756
エラーをコピペ。
500 Inter(略は無意味だからね。
076075103/01/31 22:37ID:???
自分が想定しないゲロい実体参照を入れられる事が、危険だと考えるなら、
有効だと思うんだけどなぁー

>>759
&aaaaaみたいなものの&がそのまま残る可能性があるから、ブラウザに拡大解釈
される可能性が残るので良くない。
これに対処しようとすると、その方法だと異常にやることが増えて、>>751に書いた(変だけど)
単純な置換の方が圧倒的に速くなる、はず。
076175903/01/31 22:49ID:???
ほんとだ。
あちらを立てればこちらが立たず。
0762nobodyさん03/01/31 23:32ID:???
# 安全
s/&(?!(?:amp|#(?:[Xx][0-9A-Fa-f]+|[0-9]+));)/&/g;
s/"/"/g;
s/</</g;
s/>/>/g;

# 便利
s/&(?!#(?:[Xx][0-9A-Fa-f]+|[0-9]+);)/&/g;
s/&(?:amp;)([0-9A-Za-z]+;)/&$1/g;
s/"/"/g;
s/</</g;
s/>/>/g;
0763nobodyさん03/01/31 23:34ID:???
あー。

# 安全
s/&(?!(?:amp|#(?:[Xx][0-9A-Fa-f]+|[0-9]+));)/&amp;/g;
s/"/&quot;/g;
s/</&lt;/g;
s/>/&gt;/g;

# 便利
s/&(?!#(?:[Xx][0-9A-Fa-f]+|[0-9]+);)/&amp;/g;
s/&(?:amp;)([0-9A-Za-z]+;)/&$1/g;
s/"/&quot;/g;
s/</&lt;/g;
s/>/&gt;/g;
0764nobodyさん03/02/01 01:11ID:PH6PPkmG
↑にも出てるけど・・エラーメッセージってどうやって出すんですか?
俺今までInternalServerErrorがでると1行1行チェックしてた・・・・

誰かアホな俺に教えてくれ。。
0765nobodyさん03/02/01 01:21ID:???
>>756
スクリプトの記述ミス発見したところだけ
これ以上はしらん。後は自分で探してくれ。

誤:&ReadPlarse(*form);
正:&ReadParse(*form);

誤:print >> "END_OF_HTML";
正:print <<"END_OF_HTML";
0766nobodyさん03/02/01 01:33ID:???
>>764
http://www.harukaze.net/~mishima/perl/cgi-debug-env/deb-tech.html
0767 ◆PerlqhxPVA 03/02/01 01:43ID:???
うちの鯖は 500 鰓の時、エラー内容の出力をさせています。
でも、ディレクトリ構造がばれるのでこあいです(w

♪なんだか & 処理が加熱しているねぇ、、、
 そこまで何にも考えていなかった、、、スマソ
076876403/02/01 01:49ID:ofCxo2ei
>>766

ありがと〜
0769nobodyさん03/02/01 02:27ID:???
test
0770nobodyさん03/02/01 11:59ID:E95fdX8s
mod_perl で動かすとApacheのエラーログに
サブルーチンがなんたらかんたらと出ます。
なんでかな?

Subroutine main redefined at /usr/local/apache/perl/main.cgi line 16 (#1)
(W redefine) You redefined a subroutine. To suppress this warning, say

{
no warnings;
eval "sub name { ... }";
}
0771nobodyさん03/02/01 12:16ID:0/Z0vaJ7
こんな情報です。

http://pakopako.misty.ne.jp/enter.cgi?id=fdeai
0772nobodyさん03/02/01 12:23ID:???
>>770
コード出せハゲ。
0773nobodyさん03/02/01 12:23ID:???
>>770
関数の2重定義してない?
0774nobodyさん03/02/01 12:27ID:E95fdX8s
>>772
やだ。
>>773
それはないです。
perl -c で実行してもOK。
CGIで起動した時もOK。
mod_perl環境の時にだけエラーでる。
0775nobodyさん03/02/01 12:27ID:???
>>772
やだ。
>>773
それはないです。
perl -c で実行してもOK。
CGIで起動した時もOK。
mod_perl環境の時にだけエラーでる。
0776nobodyさん03/02/01 12:33ID:???
やだ?なら質問するな。
0777nobodyさん03/02/01 13:00ID:???
mod_perl(Apache::Registry)で動かしたいと思うなら、真面目に書かないと無理なんだよ。坊や。
0778nobodyさん03/02/01 15:48ID:???
Perlの入門書を見て勉強中ですが、
$|=1;
としてバッファを・・・・
とか言われるのですが
そもそもバッファとはなんぞや?
と初心者の私は疑問をもつわけで・・
その辺をうまく説明していただけないでしょうか?
0779nobodyさん03/02/01 15:51ID:???
>>778
ダムだよ。ダム。

ちょろちょろとしか来ないデータをある程度貯めておいて一気に取り出したり、
速い流れを取りあえずせき止めておいて自分のペースでゆっくり処理したり。

そう言うことに使う入れ物だ。
0780nobodyさん03/02/01 16:26ID:???
>>778
「おーい、ちょっと倉庫からこけし100本持ってきてくれ。あ、一度に渡すのは1本でいいから」

倉庫に行って1本持って戻ってきて渡す。これを100回繰り返す。(バッファなし)
一旦倉庫から100本まとめて近くの机の上に持ってきて、そこから1本ずつ手渡す。(バッファあり)

この「近くの机の上」に相当するのがバッファ。
078177803/02/01 16:47ID:???
バッファあり、なしの違いはなんとなくわかったけど
プログラムを組む上で
バッファありとなしとでなんか変わりますか?
たとえばsysread()とread()で、
結局読み出すんなら一緒だと初心者の私は思ふ。
そこらへんプログラムを書く人はどのように
使い分ける必要があるんだろ?
0782nobodyさん03/02/01 16:56ID:???
速度が数倍から数十倍違う。
こういうことに気をつけることをせずにプログラムを組んでいくと
いずれ、「遅いぜっ!ヴァニラアイス!」
という感じで、体中を串刺しにされる運命を辿ることになる。
0783nobodyさん03/02/01 17:00ID:???
>>781
速度が全然違うよ。
バッファなしなんて遅すぎて使い物にならない。
……っていうのは、8ビット時代のお話。

Perlの場合、既にプラットフォーム上(UNIXなりWinなり)でバッファリングしてくれて
いるので、Perl自身がバッファリングしなくてもそれほど体感的な差はないと思う。
でも、バッファの考え方自体は覚えておいたほうがいいと思うよ。
ファイルを一旦リストに読み込んで処理…なんてのもバッファ的なやり方だし。
0784nobodyさん03/02/01 17:09ID:???
>>781
Socketを使う時はリアルタイムにやりとりが必要になるんで、
バッファを回避しないとまずい。
0785nobodyさん03/02/01 17:24ID:???
Perlで任意の時点でバッファをフラッシュする方法がわからん・・・fflushなんて関数もないし。
しかたないからunbufferedにしちゃっているけど。
0786nobodyさん03/02/01 17:56ID:???
$fh->flush;
0787nobodyさん03/02/01 18:17ID:???
>>785
私も知りませんでした。
>>786
FileHandleモジュールで、いいでしょうか。
調べたところIO::Handle由来の機能っぽいですね。
(FileHandleのドキュメントに無かった…)

旧来の書き方なら flush FH; とかですか。
0788nobodyさん03/02/01 18:49ID:???
IO::Fileじゃないと使えないぽい。

でも最近のFileHandleはIO::Fileを使うようになってるから、FileHandleでも使えるかも。
0789nobodyさん03/02/01 20:01ID:???
>>783
差が出る使い方すれば差が出る。
0790nobodyさん03/02/01 20:24ID:???
>>782
ちなみにバッファリング あり、なし
でどっちが速いの?
0791nobodyさん03/02/01 20:58ID:???
>>790
人の話聞けよ。
0792nobodyさん03/02/01 21:32ID:DN2rKwgG
当方、ActivePerl5.6とApacheHTTPServer2.0.43で自鯖を構築したのですが、
掲示板スクリプトを自鯖にUPしたところ、bbs.cgiが表示されません。
真っ白です。なぜでしょうか?
ちなみに、管理モードに入るためのパスとログイン名入力のページは表示されます。
しかし、そこから、bbs.cgiに行っても、やはり真っ白です。
0793nobodyさん03/02/01 21:40ID:???
bbs.cgiなんてどこにでもあるようなものじゃわからん。
それにスレ違い。
ここはPerlのコーディングについてのスレッド。
0794nobodyさん03/02/01 21:44ID:???
>>793
板違いだよ。
0795nobodyさん03/02/01 21:47ID:DN2rKwgG
>>793
うっせぇぼけ。仕立てにでりゃ調子こいてんじゃねぇぞ。
答えれないだけだろ低スキル野郎。てめぇはチンカスほじって寝てろや。
0796nobodyさん03/02/01 21:47ID:DN2rKwgG
>>794
違げえよばーか。
0797nobodyさん03/02/01 22:00ID:???
>>792
(・∀・)ニヤニヤ
0798b03/02/01 22:18ID:???
★あなたのお悩み解決致します!!
●浮気素行調査
彼氏、彼女、妻、夫の浮気を調査致します!!
●盗聴器盗撮機発見
あなたの部屋に誰かが仕掛けているかも!!
●行方調査
行方不明になっている家族の消息を調査致します!!
●電話番号から住所割り出し
一般電話、携帯から住所を割り出し致します!!
●ストーカー対策
社会問題ともなっているストーカーを撃退致します!!
その他人生相談からどんなお悩みでも解決いたします!!
 24時間受付  090−8505−3086
URL  http://www.h5.dion.ne.jp/~grobal/
メール  [email protected]
   グローバル探偵事務局 

0799nobodyさん03/02/01 22:29ID:???
ここで熱くならずに無視できたら大人!
0800nobodyさん03/02/01 22:32ID:???
>>799
(・∀・)ニヤニヤ
0801nobodyさん03/02/01 23:03ID:???
悔しかったら自分で調べること。誰も怒らないから。
0802nobodyさん03/02/01 23:24ID:???
>>792.795.796
プププ
哀れだね
0803nobodyさん03/02/01 23:33ID:???
>>802
ここで熱くならずに無視できなかったから子供?
0804nobodyさん03/02/01 23:42ID:???
>>803
よくご存じで。
0805nobodyさん03/02/01 23:42ID:???
  〃┏━━
  |. ノノソハ)))
(\リリ ´ー`)リ  < ファイルテスト演算子
 (ニE(#つo⊂#)

ファイルテスト演算子は、こんなことができる演算子だよ。
・このファイルがあるかどうかチェック (-e)
・ファイル(ディレクトリ)が読めるかどうかチェック (-r)
・ファイル(ディレクトリ)に書けるかどうかチェック (-w)
・ファイルかどうかチェックする (-f)
・ディレクトリかどうかチェックする (-d)
・ファイルのバイト数をチェックする (-s)

これくらい知ってるといいね。
実例だよ。

if ( -e "test.txt" ) { print "ファイルがあるよ"; }
else { print "ファイルないよ"; }

if ( -r "test.txt" ) { print "ファイルから読めるよ"; }
else { print "ファイルから読めないよ"; }

if ( -f "test.txt" ) { print "通常ファイルだよ"; }
else { print "通常ファイルじゃないよ"; }

$size = -s "test.txt";
print "$sizeバイト";

他にもいろいろあるんだけど、また必要になりそうだったら説明するね。
ややこしい説明はなるべく避けたいからね。。

じゃあ次回は、他の文字列処理関係の関数を勉強するよ
0806nobodyさん03/02/02 01:13ID:???
>>805
誤爆か……
0807厨房03/02/02 07:09ID:45tlaHB9
置換に関する質問です。

$a = "aaa"; $b = "aa";
$a = ~s/^$b//;
print "$a\n";

これを実行すると
a
という実行結果になると思うのですがなぜか
4294967295
という実行結果が出ました。。 なぜでしょう?
perlのバージョンは
5.005_03 built for i386-freebsd
です。。
0808マリモーマ ◆r6PDGT6Xd2 03/02/02 07:20ID:m/KRriEG
^$bのせいでは?
0809nobodyさん03/02/02 07:23ID:???
$a =~ s/^$b//;
0810厨房03/02/02 07:27ID:45tlaHB9
あー
>>809さんの指摘通りでした。。
>>808さん>>809さん、ありがとうございました。
0811nobodyさん03/02/02 09:20ID:mV23mEyN
自分でライブラリを作るんだけど、

package MYLIBRARY;
sub new {
  ・・・
}

とか書きますよね。
んで、このソースにも、ちゃんと my のチェックをしたいので、use strict を書こうと思うんですが、

use strict;
package MYLIBRARY;
sub new {
  ・・・
}

とすべきか

package MYLIBRARY;
use strict;
sub new {
  ・・・
}

とすべきか迷ってます。
package よりも前に書くのと後に書くのはいっしょなんですか?
それとも、なんか違うんですか?
0812 ◆PerlqhxPVA 03/02/02 10:38ID:???
>>811
他の汎用ライブラリをお手本にする。
0813nobodyさん03/02/02 14:10ID:pmlltvJ1
↓ここまとめられないかな?
my($a)=&hoge();
@b=@$a;
↑
sub hoge {
------
return(\@a);
}
0814nobodyさん03/02/02 14:21ID:pmlltvJ1
ごめんできた
0815nobodyさん03/02/02 14:24ID:???
>>814
どうやって?
知りたい。
0816nobodyさん03/02/02 15:28ID:6TL1miGW
>>815
>>814じゃないけど、
@b=@{hoge()}
ってことでしょ。

配列のコピーが発生するからリファレンスのまま行った方がいいような気がするが
0817nobodyさん03/02/02 15:52ID:???
掲示板で
$trip って入れてあるところにトリップ出せるような
機能のつけかた教えてください。
0818nobodyさん03/02/02 15:55ID:???
>>817
$trip = "トリップ";

面倒だからやめた。htmlファイルなめて正規表現で該当箇所置き換えろ。
0819 e03/02/02 16:07ID:???
# ハンドル(トリップ)
&jcode::tr(?$FORM{'FROM'}, '#', '#');
if($FORM{'FROM'} =~ /([^?#]*)?#(.+)/){
my $main_message = $1;
my $handle_pass = $2;
my $change_salt = substr($handle_pass, , 1) . "H";
$handle_pass = substr(crypt($handle_pass, $change_salt), -8);
if($main_message ne ""){
$FORM{'FROM'} = "$main_message </b>◆$handle_pass <b>";
}else{
$FORM{'FROM'} = "</b> ◆$handle_pass <b>";
}
}
0820nobodyさん03/02/02 16:15ID:???
そういうのはCGI改造スレでやってくれ。
082172703/02/02 21:03ID:ionxQd5/
require 'cgi-lib.pl';
&ReadPlarse(*form);
require 'jcode.pl';
&jcode'convert(*form,'sjis');
$data = $form{'name'}\n$form{'mail'}$form{'sex'}\n$form{'ryori'}\n$form{'message'}\n\n
open(ENQ, ">>$enqdata.dat")||do{print "ERR";exit;};
#flock(ENQ, 2);
print ENQ $data;
#flock(ENQ, 8);
close(ENQ);
print "Content-type:text/html\n\n";
print >> "END_OF_HTML";
<HTML>
<HEAD>
<TITEL>有難う御座いました</TITLE>
</HEAD>
<BODY>
アンケートは送信されました!<BR>
またのお越しをお待ちしています
</BODY>
</HTML>
END_OF_HTML
これを実行したら
Backslash found where operator expected at enquetesys.pl line 11, near "}\"
(Missing operator before \?)
syntax error at enquetesys.pl line 11, near "}\"
enquetesys.pl had compilation errors.
ってえらーがでました。
落してきたソフトを実行しただけなのになんでエラーがでるのでしょうか?
0822nobodyさん03/02/02 21:08ID:???
>>821
まともに設定もされてないんだろ。
0823nobodyさん03/02/02 21:10ID:lbpBAa4z
ファイルハンドルの配列というのはできないのでしょうか?
$MAX = 2;
@NAME = ('a','b');

for($i=0;$i<$MAX;$i++){
  open(@FILE, "./$NAME[$i].txt");
}

これだとエラーになってしまいました。
上記のコードのミス、もしくは何か他の方法がありましたらアドバイスお願いします
0824nobodyさん03/02/02 21:13ID:???
>>823
って言うかそんないっぺんにファイル開いて何する気よ?
0825デフォルトの名無しさん03/02/02 21:16ID:???
>>821
エラーメッセージちゃんと理解するように努力しろよ。
英語分かんなかったら又厨房からやり直せ
0826nobodyさん03/02/02 21:16ID:???
>>821

>$data = $form{'name'}\n$form{'mail'}$form{'sex'}\n$form{'ryori'}\n$form{'message'}\n\n
$data = "$form{'name'}\n$form{'mail'}$form{'sex'}\n$form{'ryori'}\n$form{'message'}\n\n";

>print >> "END_OF_HTML";
print <<"END_OF_HTML";

そして最後の改行も忘れずに。
0827nobodyさん03/02/02 21:21ID:???
>>826
さて、厨房を甘やかした代償がいかに大きいかわかってないバカがいるわけだが。
0828 ◆PerlqhxPVA 03/02/02 21:23ID:???
>>827
しかもマルチだたし(哀)
0829nobodyさん03/02/02 21:23ID:GIziK5Md
スレ汚し失礼します。
今、
http://live.2ch.net/test/read.cgi/festival/1044106562/
このスレで
http://blatt.hp.infoseek.co.jp/
このサイトが大流行
みなさんも逝ってみてください。
よろしくおねがいします。
失礼しました。
0830nobodyさん03/02/02 21:27ID:???
mod_perl では exit()が使えないんらしいんだけど・・・
どうすんの?
exit()なしで終り?
0831h03/02/02 21:33ID:skZYA3IH
他にも書いちゃ単ですが・・・

ローカルでCGIを動かしたところ,うまく動作しました。
で,インターネットテンポラリーファイルとクッキーを削除したら
クッキーが復活しません。
どうしたらいいですか?
0832nobodyさん03/02/02 21:43ID:???
データファイルをまとめるCGIを作っているのですが、
日本語検索がうまくいきません。
if($test =~ /テスト/)
だとエラーになってしまいました。
jcodeというのもちゃんと入れました。
何かよい方法はないでしょうか?
0833nobodyさん03/02/02 21:46ID:???
>>832
jcode入れたところで標準の正規表現は英語用です。
083482603/02/02 21:56ID:???
がーん( ̄A ̄||)
083572703/02/02 22:43ID:ionxQd5/
>>827
ありがとうございました。
って言うか。コンパイルエラーが出るようなプログラムを
PERL講座って感じで公開しないで欲しいですよ、まったく。
0836nobodyさん03/02/02 23:10ID:???
>>835
講座である以上素人相手ではないのだから多少のミスはユーザ側で直して当然ということだろう。

実際、人の間違ったコードというのは課題としてよく使われる。
0837nobodyさん03/02/02 23:30ID:???
>>836
しかし、配布元http://www.salut.ne.jp/bf/wmh/seminar/にある
アフォ面http://www.salut.ne.jp/bf/wmh/seminar/img/KiryuuKiri.jpg見ると

単 に ヘ ボ な だ け
0838nobodyさん03/02/02 23:32ID:???
>>837
かと言って>>727が賢いわけでもあるまい。

そのヘボのスクリプトさえ使いこなせないわけだ。
0839nobodyさん03/02/02 23:50ID:???
>>838
その件については禿しく胴囲する。
0840h03/02/03 00:15ID:XAlS7Khu
ローカルでCGIを動かしたところ,クッキーが機能しました.
で,クッキーを削除したら クッキーが機能しません。
クッキーを復活させるにはどうしたらいいですか?
0841nobodyさん03/02/03 00:30ID:???
またクッキーを食べさせろ。
0842nobodyさん03/02/03 01:53ID:???
>>823
use Symbol;
my %fh = (foo => gensym, bar => gensym, baz => gensym);
my($i, $file, $fh) = (1);
open $fh, ">$file.txt" or die while ($file, $fh) = each %fh;
for (0..4) { print $_ $i++ for values %fh }
close $_ for values %fh;

>>830
http://www.din.or.jp/~bigstone/cgilab/cgitips/mod_perl1.html
0843nobodyさん03/02/03 07:12ID:JvqhDUOZ
日本語が混じったファイルの整理をするCGIを作りってるのですが、
↓のようなモノを数人分をtableでまとめようとしています
--------------------
あああ 123回
いい   11回
うううう 50回
----------------------
このような感じで文字は左端にそろえてあり、
回数のほうは「回」の部分でそろえられています。
この場合どのようにしたら回数の部分を読み込めるのでしょうか?

まず、日本語検索をしようとしてもエラーになってしまい、
もし日本語検索がうまくいったとしてもそのあとはどうすればよいのかと、
試行錯誤しております。
何かアドバイスありましたらご教授お願いします
0844nobodyさん03/02/03 07:46ID:???
>843
EUCで処理。
正規表現で抜き出す。

> もし日本語検索がうまくいったとしてもそのあとはどうすればよいのか
知らんよ、おまいの心は漏れにとどかんとよ。
0845デフォルトの名無しさん03/02/03 07:56ID:???
$_ = 'あああ 123回';
/(\d+)/; print $1,"\n";
0846nobodyさん03/02/03 10:07ID:???
>>843
データのフォーマットから見直すべき。
整形は出力時にやれ。
0847nobodyさん03/02/03 10:42ID:D3Jh7Sun
すいません、本当はEXCELのVBとかでやるべきことなのかもしれませんが、
自分はperlに関して少々の知識があるくらいなので質問させていただきます。
htmlで、各人の名前にリンクでメールアドレスがついてるソース

例えば
<a href="mailto:[email protected]">AAA</a><br>
<a href="mailto:[email protected]">BBB</a><br>
<a href="mailto:[email protected]">CCC</a><br>
.
.
.

みたいになってるときに、ソースをテキストファイルとして保存し、それを読み込んで
メールアドレスだけ取得し、別のテキストに書き出したいのですが、どうやって検索したら
アドレスだけ抽出できますか?
自分ではアドレスには前にmailto:があり、最後は(自分の場合は携帯アドレスなので).jpで終わってる
ので、この間にある部分をすべてとるようにしたいのですが、可能ですか?




0848nobodyさん03/02/03 10:59ID:???
>>847
できるよ...
つーか2,3個前のレスぐらい嫁。
おんなじようなことやってるやん。
0849nobodyさん03/02/03 11:11ID:???
>>847
@mail = map { /mailto:(.+?)"/ and $1 } @html;
0850nobodyさん03/02/03 12:01ID:D3Jh7Sun
>>848
>>849
ありがとうございます。perlに関する知識があるとはいえ、ソースの意味が
なんとなくわかる程度なので、作るとなるとごく基本的な事もあやふやです。
#!/usr/bin/perl


$datafile = "./mail.dat";
$sortfile = "./sort.dat";

open(LOG,"$datafile");
@html = <LOG>;
close(LOG);
@mail = map { /mailto:(.+?)"/ and $1 } @html;

open(FILE, ">$sortfile");
print $mail;
close FILE;
exit;

どこがおかしいですか?お願いします☆
0851nobodyさん03/02/03 12:11ID:???
Perl2EXEの使い方、または参考になるページを
ご存じの方がいらっしゃいましたら教えてください。
0852nobodyさん03/02/03 13:38ID:???
>>850
perlに関する知識があるのにソースの意味がなんとなくわかる程度なのか?
おかしいのはチミの頭だYO

ちなみに漏れにはperlの知識は殆ど無い

print FILE $mail;
0853nobodyさん03/02/03 13:44ID:???
文字列のバイト数を改行コード「\n」込みで算出したいのですが、
なにか良い方法はありますでしょうか?
今の自分のレベルでは、
$string = qq(「\\n」が含まれた任意の文字列。\nThe arbitrary character sequences in which '\\n' was contained.);
$length = scalar(map{1} unpack("C*",$string));
print "任意の文字列 \$string の総バイト数は $length です。\n";
くらいしか思い付きませんでした。
もうすこし賢い方法ってありますでしょうか?
0854nobodyさん03/02/03 13:48ID:???
$mailってな(ry
0855nobodyさん03/02/03 13:52ID:???
と、すると・・・
print FILE @mail;
かな?
■ このスレッドは過去ログ倉庫に格納されています