トップページ⇒tech
1001コメント385KB

Perlについての質問箱 14箱目

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
"The duct tape of the Internet" こと、Perlについての質問箱です。
"There's more than one way to do it" ということで、Perlの奥深さについて皆で語り合い、追求してまいりましょう。

CGIについての質問は板違いです。WEBプログラミング板でどうぞ。
CGIとPerlの区別がつかない人もWEBプログラミング板に行ってください。
(WEBプログラミング板 http://pc5.2ch.net/php/ )

CGIの質問は答えがPerlと全然関係ない話に帰着する場合が多かったりするのでWEBプログラミング板に行って聞いたほうが得ですよ。
このスレでは(CGI以外の)純粋にPerlのみに関係する質問を取り扱っていこうと思います。

http://www.perl.org/get.html
● 2004/11/28現在の最新版: 5.8.5
● 2004/11/28現在の開発版: 5.9.1
0232230NGNG
>>231
プロフェッショナルな解答みせてくれよ
美しく、効率のいい解答を
0233デフォルトの名無しさんNGNG
>>224
いやだって、decode前のencodingが分かんないから。
分かってればuse openとかで変えられるわけで。
(もっともuse openはグローバルじゃないのが困りモノだけど)

んで、ファイル名に関してはencodingを指定できる場所がない、と。
filenameとかのプラグマを作ってreaddirを上書きすればいいんじゃね?
0234デフォルトの名無しさんNGNG
>>228
それは文字セット [ ] の使い方間違えてるだけだ

$reg = qr{ <TD> ((?!</TD>).)*? 使用上 .*? </TD> }isx;
$string =~ s/$reg//g;

正規表現、絞込みと再帰が使えたらなあ…
0235デフォルトの名無しさんNGNG
>>234
Perl6の正規表現はすごいらしいよ
0236デフォルトの名無しさんNGNG
ひとつの正規表現ですまそうとせず

s{<TD>.*?</TD>}{index($1,'使用上')? '': $1}g

あたりでどうだろうか

0237デフォルトの名無しさんNGNG
ごめん、わかると思うけどeがぬけてら

s{<TD>.*?</TD>}{index($1,'使用上')? '': $1}ge

0238デフォルトの名無しさんNGNG
<<229<<230<<234<<236
ありがとうございました。
<<231 
参考に使用している本を教えてくださいな。
<<235
更に正規表現が難しくなるのか・・
0239デフォルトの名無しさんNGNG
>>238
レスアンカーくらいまともに打てないのかね?
0240230NGNG
>>237
それじゃ、だめなんだって。
で、俺はプロのコードを待ってるんだけどね。念のだめ234もチェックしてみたけど違った。
0241T女の竹田NGNG
>>228
s{(<TD>(.(?!<TD>))*?使用上.*?</TD>)}{}sgi
これでどうかな?
0242デフォルトの名無しさんNGNG
今まで出てきたコードはどれも2バイトコードに
1バイトずれてマッチする問題の対策が入ってないな。

use utf8前提ならいいがそうでないなら厳密には
まずそう。3文字もあるとそうめったに偶然マッチ
することはないけどね(笑) たとえばEUCで1バイト
ずれると「藩兢」が含まれるがこんな文字列は今
はじめてみたので実用上どの程度まずいかは疑問。
「使用上」の部分が固定文字列じゃなくてどっか
からもらうならちゃんとしなくちゃだけどね。
0243デフォルトの名無しさんNGNG
>>237
カッコが抜けている
indexの見つからなかったときの戻り値は$[-1

s{(<TD>.*?</TD>)}{index($1,'使用上')>=0? '': $1}ge

0244デフォルトの名無しさんNGNG
>>243
ひょっとして$&を知らないのか?
0245デフォルトの名無しさんNGNG
>>244
$&使うといらないとこでもマッチ結果を保存するようになるから
あきらかにそこしか正規表現がないような使い捨てスクリプトじゃ
ない限りなるべく使わない。

0246デフォルトの名無しさんNGNG
うわ、 $`, $&, $' 使う奴ってホントにいるんだね。
ただのお遊びならかまわんが、仕事がらみじゃ即座にクビだぞ。
0247デフォルトの名無しさんNGNG
>>242
漏れはてっきり、タグ中の"使用中"も拾っちゃうとか、再帰的なタグが処理できないとか
そういう部分のこと言ってるんだとおもってたよ

プロののくせに、その今更な子供みたいな文句はなんだorz
…大丈夫だよ。ぼくちゃんが心配しなくても、みんな最初にどうにかしてるから
0248デフォルトの名無しさんNGNG
再帰的なタグをとかなんとかいうともはや正規表現お手軽
コースじゃつらいんじゃないかね。HTMLのパースしてくれる
モジュール使ったほうがいいと思われ。
0249デフォルトの名無しさんNGNG
文字列から、カタカナ+漢字を抜き出そうとして

@conbi = ( $line =~ /^${euc_char}*?($KATAKANAp{2,}$KANJI{2,})/og );

で、うまくいったのですが、後ろの文字をに制限しようとして、

@conbi = ( $line =~ /^${euc_char}*?($KATAKANAp{2,}$KANJI{2,})$back{1}/og );
ではうまくいかず、

@conbi = ( $line =~ /^${euc_char}*?($KATAKANAp{2,}$KANJI{2,})($back){1}/og );
($back = 'が|の|を|に|へ|と|より|から|で';)

としたら カタカナ+漢字 と $backのひらがな1文字が入ってしまいました。
[$back]{1}にしたら$backの内容に関係なくマッチしてしまいました。
1行で表現することは無理でしょうか?

#$euc_charのぶぶんは「perlメモ」でeuc1文字にマッチする正規表現です。
 $KATAKANApや$KANJIも「Perlメモ」の全角カタカナ、漢字にマッチするものです
0250デフォルトの名無しさんNGNG
$back ='(?: 〜 )';
としたらうまくいきましたorz
スマソ...
0251デフォルトの名無しさんNGNG
漢字とかよくわからんけど
先読み (?= ... ) 使えばいいんじゃないか?

/ なんかマッチさせたい文字列 (?= 後ろの文字 ) /x
0252250NGNG
>>251
うおおお
すみません
ありがとうございますた・゚・(ノД`)・゚・
0253デフォルトの名無しさんNGNG
perlのデバッガにreadline使ったヒストリ機能欲しいな〜
0254デフォルトの名無しさんNGNG
Tk使って、getOpenFileやchooseDirectoryのウィンドウだけ出したいんですが、
MainWindowが余分に出ちゃいます。

MainWindowを出さずにすませるか、見えなくする方法ってないでしょうか?
0255_gunzipNGNG
>>254
MainWindowを作って隠す、という方法が手っ取り早いかな。

#!/usr/bin/env perl

use Tk;

my $mw = new MainWindow();
$mw->withdraw();
my $target = $mw->getOpenFile();

#以降不要なら$mw->destroy();
0256デフォルトの名無しさんNGNG
ある処理をして、その結果をクッキー出力してからHTML出力しなければなりません。
仕方がないので、HTML出力するものを文字列として$mojiに保存して、
クッキー出力後に、
print"$moji";
をしています。
結果としては正しい物が出力されるのですが、普通はこのようなやり方をするのでしょうか?
また、この方法だとprintf出力ができません。
何かいい方法は無いでしょうか。
0257デフォルトの名無しさんNGNG
>>256
まず>>1をゆっくり"声に出して"読め
0258253NGNG
Term::ReadKey,Term::ReadLine
の二つのパッケージを入れて

$PERLDB_OPTS="ReadLine=t" perl -d -e foo.pl
これでヒストリ機能が使えるようになりました。一応報告まで。
0259デフォルトの名無しさんNGNG
>>253
readline 先にインスコしてから Perl インスコすれば最初から使えるんじゃなかったっけ?
他のツールでもハマることが多いので、
漏れは OS インスコ後真っ先に入れるもののリストに readline を入れてる。
0260デフォルトの名無しさんNGNG
use strinct;
use warnings;
foreach my $bar (@list) {
 next if (-M $bar < 0); #★
 print "$bar\n";
}
と書くと、Use of uninitialized value in numeric lt (<) at ★の行
とワーニングが出まくるんですが、これは何が原因でしょう?
@listにはあるディレクトリのファイルリストが入っています。
$barが初期化されてないって意味だと思うのですが、printできてるので
ファイルリストは取得できています。Perlのバージョンは5.8.5です。
よろしくお願いします。
0261254NGNG
>>255
>MainWindowを作って隠す、という方法が手っ取り早いかな。
>my $target = $mw->getOpenFile();

>#以降不要なら$mw->destroy();

これだと、
my $target = $mw->getOpenFile();
の時点で、getOpenFileが終了するまで実行止まっちゃっちゃうので、
getOpenFileダイアログ出てる間はMainWindowも出てしまいます…

できれば、最初からgetOpenFileダイアログだけを出すようにしたいです。

0262254NGNG
>>255
とか思ってたら$mw->withdraw();が抜けてました。
これ入れたらいけました。有難うございます。

早とちりしてスミマセンorz
0263デフォルトの名無しさんNGNG
>getOpenFileが終了するまで実行止まっちゃっちゃうので、
止まらなきゃ困るだろ。
>getOpenFileダイアログ出てる間はMainWindowも出てしまいます…
でねーよ
0264263NGNG
ぐふっ
0265デフォルトの名無しさんNGNG
>>260
その-Mってのはなんの目的で入ってるの?
0266デフォルトの名無しさんNGNG
>>260
たぶんカレントディレクトリがファイルリストつくったところとちがうので-Mがundef返してるんだろ。
ディレクトリ補ってフルパスにするか適切にchdirすれ
0267デフォルトの名無しさんNGNG
>>265
こう書くと更新日時がプロセス起動より新しいファイルを弾けるんじゃないですか?

>>266
やってみます
0268デフォルトの名無しさんNGNG
>>223
私はあえてcygwinで動かしたいのです。
0269デフォルトの名無しさんNGNG
変態だな
さすがPerllスレ
0270デフォルトの名無しさんNGNG
Programming Perl 4thはいつでますか?5.10と一緒に発売ですか?
0271デフォルトの名無しさんNGNG
たまに、関数で

hoge_func($) {
hogehoge;
}

とか、

piyo_func($;$) {
piyopiyo;
}

関数名のあとの、($)とか($;$)ってどういう意味があるのですか?
0272デフォルトの名無しさんNGNG
http://www.google.co.jp/search?hl=ja&q=Perl+%E3%83%97%E3%83%AD%E3%83%88%E3%82%BF%E3%82%A4%E3%83%97&lr=
0273デフォルトの名無しさんNGNG
>>272
いきなり Google の URL 示さなくても "Perl のプロトタイプだYO!" って言えばいいのに。
とりあえず>>271はラクダ本を買えってこった。
0274デフォルトの名無しさんNGNG
3巻組になったりしてね。
0275デフォルトの名無しさんNGNG
>>221 で紹介されてたとこ、閉鎖されてる?

ついこないだまでは繋がったのに、、、。
0276デフォルトの名無しさんNGNG
>>275
普通に見えるが?
0277デフォルトの名無しさんNGNG
テキスト編集をするためにPerlを少しかじったのですが、面白くなってもっと知りたいと思いました。
今まではネットでPerlを紹介しているページで勉強していたのですが、本気で勉強しようと思ったら、
オライリーの本を買って勉強したほうがいいのでしょうか?
今ちょうど手元に『初めてのPerl』があるのですが、最初のスカラーデータから読み直したほうがいいですか?
オライリーのPerl本は色々あるんですね。

初めてのPerl (続)
Perlクックブック
プログラミングPerl

色々ありますが、どのような順番で勉強していけばキチンと身につけられますか?
それともオライリー以外のほかの書籍で『これは読んどけ』って言うのがあったら教えてください。
0278デフォルトの名無しさんNGNG
やりたいことがあったらその都度
プログラミングPerlで勉強していくのが一番いいと思うよ。
0279デフォルトの名無しさんNGNG
>>277
初めてのPerlは頭から熟読するべし
その次に読むとしたら 続・初めての かな
クックブックは、まだ要らないと思う
プログラミングPerlは、金が余ってるなら買ってもいいけど
お布施みたいなもんだから、金が無いなら買わなくていい

オライリー以外なら、EffectivePerlあたりがコストパフォーマンスが良くてオススメ
初めてのPerl読み終わったら買うといい。
0280デフォルトの名無しさんNGNG
電子メールのFrom:ヘッダから、メールアドレスと表示名を取り出したいんですが、
スマートな正規表現があったら教えていただけませんでしょうか。
想定するFrom:ヘッダとしては
(1) aiueo <[email protected]>
(2) [email protected]
(3) [email protected] (aiueo)
くらいでよいと思うのですが。("aiueo"が表示名のつもりです)

とりあえず(1)からアドレスと取り出す方法として
if ($from =~ /<(.+@.+)>/)
{
print "$1\n";
}
というのを作ったんですが、他の形式にも対応させようとして、いろいろやったんですけど
うまくいきませんでした。(初心者で申し訳ありません)
0281デフォルトの名無しさんNGNG
Perl/Tk を Cygwin で動かす問題について、いくつかやってみた結果を曝します。
まずはふつうにパッケージを解凍して、
$perl Makefile.PL
$make
すると、pTkサブディレクトリで氏ぬから、pTk/Makefile の DEFINE = に -DWINUSERAPI="" を追加して
pTk サブディレクトリについて make を続行する。
つぎに、
pTk/mTk/xlib/X11/Xlib.h の 1206 行を
#include <pTk/tkIntXlibDecls_f.h> に変更してから Xlib サブディレクトリを make する。
Event/tclPlatEvent.c の1行目の下に #include <sys/time.h> を挿入する。
Event/tclPlatNotfy.c の33行目の下に #include <pTk/mTk/unix/tkUnixPort.h> を挿入する。
pTk/mTk/unix/tkUnixPort.hを
l.42 #include <pTk/compat/limits.h>
l.62 #include <pTk/Lang.h>
l.89 #include <pTk/compat/unistd.h>
に変更する。
そのうえで Event/ サブディレクトリを make する。
JPEG/ サブディレクトリに移る。
makeするとJPEG.cのコンパイルで氏ぬので
make JPEG.i で JPEG.iを生成してから
typedef struct HWND__{int i;}*void *;
を
typedef struct HWND__{int i;}*HWND;
になおす。変更したJPEG.iを手でコンパイルしたらmakeを続行する。
PNG/ サブディレクトリも同様の手順でmakeする。
こまったのは Canvas, Entry, ListBox, Menubutton, Scale, Text の各ディレクトリのmakeである。
こいつらをmakeしようとするとlinkの段階で氏ぬ。
ぉιぇτ、工□い人
0282デフォルトの名無しさんNGNG
>>280
きちんとやるなら素直に Mail::Header つかうのが吉。
0283デフォルトの名無しさんNGNG
Mail::Header、自分のPCに入っていたんで、perldocでマニュアル見てみたんですけど、
あまりよく分かりませんでした。
getメソッドが使えるのかな。
Fromヘッダの内容は、変数に入れてあるんですけど、
new Mail::Headerには、標準入力か、ファイルディスクリプタ?しか
渡せないんですかね。(ファイルからの入力しかできない?)
すこし試してみます。。
0284デフォルトの名無しさんNGNG
>>277
>>279

意外と、『クックブック』は早めに手に入れておいた方がいいと思うな。

というのも、『初めて』『続・初めて』と進んできて、
一番問題になるのは、リファレンスとオブジェクトの理解だと思うんだわ。

特に、『続・初めて』だけだと、オブジェクト指向のあたりは、
理解は難しいと思う。

自分の場合、
『続・初めて』で分からないとき、同じ項目を『クックブック』で引いてみると、
ああ、なるほどと分かることが多かった。

基礎部分は、『初めて』『続・初めて』『クックブック』だけでいいと思う。

あとは、なにをするかによって、専門分野のを選ばないと。
CGI なのか DBI なのか、それ以外のなにかなのか…
0285デフォルトの名無しさんNGNG
>>283
ごめん、おもいっきり誤読してた。
Email::Address がそれっぽい。
0286デフォルトの名無しさんNGNG
プログラミングPerlとEffective Perl持ってない奴は偽者
0287デフォルトの名無しさんNGNG
>>285さん
できました!ありがとうございます。
<code>
use Mail::Address;
my @addrs = Mail::Address->parse($from);
foreach my $addr (@addrs)
{
print $addr->address,"\n";
print $addr->comment,"\n";
print $addr->name,"\n";
}
</code>
0288デフォルトの名無しさんNGNG
偽者だからなんやねん
0289277NGNG
質問に答えてくださった皆さん、どうもありがとうございます。
とりあえず、

�@初めてのPerl
  ↓
�A続・初めてのPerl (⇔プログラミングPerl⇔クックブック ⇔ EffectivePerl)
  ↓
�BプログラミングPerl ⇔ クックブック ⇔ EffectivePerl

というような順番で読んでいけばいいのでしょうか。
ここまでがDBIとか専門分野に進んでいく『一般教養』と考えていいのですか?
大学の授業に例えるならこんな感じかな、と思ったのですが・・・。
0290デフォルトの名無しさんNGNG
あのさ、
プログラミング言語なんてのは使ってなんぼのもんなので
覚えるためのもんじゃないんで、
どこまで覚えりゃいいなんてものはないし
覚えると誉めてくれる人なんていないわけ。

いいたかないが、かまって君なら板違い。
仮眠前に覗くんじゃなかったわ。
0291デフォルトの名無しさんNGNG
DA----YO----NE--------------!!!!!!!
0292デフォルトの名無しさんNGNG
>>290
もまえもその程度の事でストレス溜めてどうするよ
どうせネタなんだからスルーしる
0293デフォルトの名無しさんNGNG
本なんか無くてもネット上に転がっている情報だけで
十分すぎると思うんだが…
0294デフォルトの名無しさんNGNG
>テキスト編集をするためにPerlを少しかじったのですが、面白くなってもっと知りたいと思いました。
>今まではネットでPerlを紹介しているページで勉強していたのですが、本気で勉強しようと思ったら、
>オライリーの本を買って勉強したほうがいいのでしょうか?
>今ちょうど手元に『初めてのPerl』があるのですが、最初のスカラーデータから読み直したほうがいいですか?

みんな親切だね
0295デフォルトの名無しさんNGNG
とりあえず「初めてのPerl」読め、次の話はそれからだ。

>>293-294
中途半端で間違った知識付けて、下らない質問されるよりは
真っ当な道教えておいた方がいいだろ
0296デフォルトの名無しさんNGNG
真っ当な道って・・・
0297デフォルトの名無しさんNGNG
私が思うに、

初めてのPerl 続・初めてのPerl クックブック

くらいまでが、一般教養。
(ここまでやって、ようやく構造化とか、リファレンスとか、
 オブジェクトの触りくらいまでは、分かるようになる)

DBIやらなにやらの専門分野はそのあと。

プログラミングperl なんかも、ここらあたりになると
持っているべきと思う。
(ここまで来ないと、理解できる本じゃない)

perlのいいところは、すべて知らなくても、
それなりに使えるというとこ。

ただ、きちんと学べば、もっと楽しく使えるよ。
0298デフォルトの名無しさんNGNG
あぁ、全部 >>277 の自演に見えてきた
0299デフォルトの名無しさんNGNG
>>297
そこら辺りまで行くと、ラクダ本じゃなく perldocで十分じゃないか?
0300デフォルトの名無しさんNGNG
>>298
本の宣伝してるんだろうよ。
0301デフォルトの名無しさんNGNG
>>300
こいつ、バカ?
オライリーがこんなとこで宣伝するかよ!
0302デフォルトの名無しさんNGNG
ティムが降臨するスレ
0303名無しさん@ゴーゴーゴーゴー!NGNG
kent読んでおかしい所判るようになりゃいいんでねの?
0304デフォルトの名無しさんNGNG
>>303
kentのサイトは、ちらとしか見たことないが…。

いや、だからね、perlのいいところは、そこそこしか知らんでも、
とりあえずなんとかなるというとこ。

リファレンス使えない奴はダメだ、とかいい始めると、
それはいかにも perl らしくない。

だけど、そういうことを知ってると、それはそれで、
とってもいいこといっぱいあるよ、ということ。

どこまで必要かは、自分で考えりゃいい。
0305デフォルトの名無しさんNGNG
オブジェクトのパッケージ名が標準モジュールのパッケージ名と
かぶらないようにするには、どういう規則で名前を付ければいいでしょうか?
0306デフォルトの名無しさんNGNG
ぐぐってたらperlccっていうのがあるって書いてあって使ってみようと思ったんですが
色々見て回りましたがうまくいきません。
詳しく書いてあるサイトなど、何か情報はありませんか?
0307デフォルトの名無しさんNGNG
gcc使ったことがあるなら普通に分りそうなもんだけど。
0308デフォルトの名無しさんNGNG
電子メールのDate:ヘッダから、年月日、時分秒を取り出す
スマートな正規表現か
便利なモジュール等ありましたら
教えていただけませんでしょうか。

想定しているヘッダの書式は以下のような感じです。

Date: Sun, 02 Nov 2003 06:07:00
Date: Sun, 02 Nov 2003 06:07:00 GMT
Date: Sun, 02 Nov 2003 06:07:00 +0900
Date: Sun, 02 Nov 2003 07:07:00 +0900 (JST)

RFCの規定では、
曜日と秒は省略可、日にちは1桁でも可
だそうです。
秒が省略されたときは、無条件で0でいいと思っています。
0309デフォルトの名無しさんNGNG
Mail::Header
0310デフォルトの名無しさんNGNG
>>308
http://search.cpan.org/
ここをブックマークしとけ。
0311デフォルトの名無しさんNGNG
>>305
CPAN等で公開しないんなら、アンダースコア(_)で始めればいいんじゃね?
0312デフォルトの名無しさんNGNG
>>308
>>309
Mail::Headerだと丸ごと文字列として取り出すだけなんじゃ...
中身を解釈したければ、Mail::Fieldじゃねーの?

use Mail::Field;

$date_string = 'Date: Sun, 02 Nov 2003 07:07:00 +0900 (JST)';

$date_field = Mail::Field->new('date', $date_string);

$t = $date_field->time; # unix time

みたいな感じで。unix timeになったらあとはlocaltimeなり
strftimeなり自由に使えるはず。中身ちらっとみたらdate
文字列の解釈はDate::Parse呼んでるだけだったけどな。


0313305NGNG
>>311
なるほど。それは盲点でした。
ありがとうございます。
0314デフォルトの名無しさんNGNG
>>312さん
ありがとうございます。マジ助かります。
0315デフォルトの名無しさんNGNG
ハッシュってなんでいろんな表記方法があるんですか?

$hash->{'abc'}

$hash{'abc'}

$hash{"abc"}

↑の違いは何かあるんですかねぇ・・・
統一してほしいんですが・・・
0316デフォルトの名無しさんNGNG
haxa?
0317デフォルトの名無しさんNGNG
違いはあるよ
0318デフォルトの名無しさんNGNG
>>317
どういうふうに違うんですか?
0319デフォルトの名無しさんNGNG
>>315
$hash->{...}と$hash{...}が同じだと思ってる段階でアウト。
perlの基本を勉強して出直して来い。

%hash = (a=>1);
$hash = {a=>2};

print "(1) $hash{'a'}\n";
print "(2) $hash->{'a'}\n";
0320デフォルトの名無しさんNGNG
>>318
少なくとも、
$hash->{'abc'}
$hash{'abc'}
では、意味がぜんぜん違う。
前のは、リファレンスをデリファレンスする、
あるいは、メソッドの呼び出し ということになる。
0321デフォルトの名無しさんNGNG
>>319
>>320
違うんだったんですね、同じものかとおもいました。
0322デフォルトの名無しさんNGNG
それにしても腐った文法だな
0323デフォルトの名無しさんNGNG
>>322
人格くさった奴は、rubyスレに帰れや。
松本に、いい性格をオブジェクト指向で生み出してもらうように
してもらえ。
それとも、perlでアタマをハッシュしてやろうか?
0324デフォルトの名無しさんNGNG
>>322
うんとか、すんとか、なんか抜かせよ、ヴォケ。
んじゃ、ruby と クソ をbless してやるな。
メソッド、ケツ拭け!
0325デフォルトの名無しさんNGNG
${hash}{abc}
0326デフォルトの名無しさんNGNG
>>325
だから、そういうときは、 -> 使えって。
そして矢印を、デリファレンス とでも頭の中で読めばいい。
(メソッドの場合もある)

何々 => ○○ は、
何々 の値 ○○ とでも読めばいい。

[ ] が、やや唐突に出てきたら、
無名配列のリファレンスとでも、頭の中で読めばいいんだし、
{ } が、やや唐突に出てきたら、
無名ハッシュのリファレンスとでも、頭の中で読めばいいんだけだ。

ランダル・シュワルツの本とかを読んでも、
向うでもみんなそうしてるように書いてあるぞ。

記号に、意味を表す読みを与えれば、なにも難しくない。
0327デフォルトの名無しさんNGNG
$hash{'abc'}
$hash{"abc"}
この二つを並べている事に関しては
文字列の基本をやり直せと言って置こうか
0328デフォルトの名無しさんNGNG
$hash{'$abc'}
$hash{"$abc"}
だと結果が異なるし
0329デフォルトの名無しさんNGNG
どちらにせよ滅多に使わないので
0330デフォルトの名無しさんNGNG
だいたいでいいなら単純に
print "$1\n" if ($from =~ /パターン1/);
print "$2\n" if ($from =~ /パターン2/);
print "$3\n" if ($from =~ /パターン3/);
でいいんじゃない?
カンペキを求めるなら(不可能らしいけど)次を参照
ttp://www.din.or.jp/~ohzaki/perl.htm#Mail
0331330NGNG
間違えてすごい古いのに回答した..(笑)
恥ずかしいので見なかったことにしてくれよ。
■ このスレッドは過去ログ倉庫に格納されています