Perl難かしい2

投稿日: 更新日:

Perl難かしいの続き。

ついに検索不能な「$_」の意味が分かりました。(^o^)丿
これ、特殊変数というものだったのです。
でも正体分かったけど、よくわからんない。

上のリンク先から引用
>デフォルトで入力やパターンマッチの対象になる特殊変数です。
(ノ*・ω・)ノ ワケヽ(・ω・*ヽ)ワカ ヽ(*・ω・)ノラン♪

なんとかよくわかんないながらも、掲示板を改造。
書き込みでリンクを設定した場合、(本文中にttpという文字列を書き込んだり)
正当な書き込みのチェックかどうかのルーチンへ遷移するようにはい。

書き込みなくても、広告が毎日書き込まれて削除が面倒だから、
これで広告が減るといいなあ。
コンピュータの自動書き込みなら多分、ブロックされると思うんだけど。
様子見ということで。

しかし……本文を取得するために、
周りのコード(AiremixのMireilleのcore.cgiより)を見つつこんなコード書いてしまったのですが
001 my
$body = ”; ←変数用意
002 my%item=($CF{‘ngWordsItems’}||‘body=本文’)=~/(\w+)=(\S+)/go;goってなんだろう検索できない。
↑$CFの連想配列で取得したものを、正規表現で区切って、ハッシュ変数に格納?ハッシュのキーと値は?
003 for(keys%item){ ←ハッシュ変数itemに、格納されている値の数だけ繰り返す?
004 $body = $IN{$_}; ←!?
005 }
自分で書いておいて何やっているかさっぱりヾ(´・ω・`)

だれか2行目から4行目まで、1行1行丁寧に教えてください。(^✹^)

広告

Perl難かしい2” への3件のフィードバック

    智紀 発言:
    2009年8月13日 19:05

    スペースが抜けて見にくくなってますが。。。>my%item = ($CF{\’ngWordsItems\’}||\’body=本文\’)=~ /(\\w+)=(\\S+)/go;「=~」はパターン結合演算子で左辺 =~ /パターン/オプションの書式となっています。%itemはハッシュ変数の事を指します。$CF{\’ngWordsItems\’} か body=本文に対して以下のパターンが適応されて item に格納されることを指します。\\wは英単語([_a-zA-Z0-9]と一緒)が1文字以上が入って次に「=」が入って\\Sは空白以外の文字 ([^ \\t\\n\\r\\f]と一緒)が1文字以上含まれている場合で「/」の最後のgはマッチするものすべてoはパターンコンパイル(変数展開を1度だけ行う最適化)を指し示します。つまりiniファイルのような形式のデータをパースしてハッシュ変数に格納することを示していると思われます。//———————-3行目はそのとおりです。http://www.kent-web.com/perl/chap7.htmlなんかだとわかりやすいかもです。

    いいね

    なたで 発言:
    2009年9月3日 15:45

    アドバイスありがとう!

    いいね

    Perl難かしい | なたで日記 発言:
    2011年3月28日 22:23

    […] Perl難かしい2 へ続く カテゴリー: program   タグ: Perl   この投稿のパーマリンク ← Windows蛾物故割れた OSを入れなおしてその後の様子 → LikeBe the first to like this . […]

    いいね

コメントをどうぞ(承認された後に公開されます。メールアドレスの記入は自由ですが、記入した場合でも一般公開されることはありません)

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中