• ベストアンサー

\* の意味が分かりません。

 CGI.pmのソースコードにある \* の意味が分かりません。 どうかよろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

どの \* ? C:\perl\lib>grep "\\\*" cgi.pm $CGI::DefaultClass->binmode(\*main::STDOUT); $CGI::DefaultClass->binmode(\*main::STDIN); $CGI::DefaultClass->binmode(\*main::STDERR); return ("start_$1","end_$1") if $tag=~/^(?:\*|start_|end_)(.+)/; : read(\*STDIN, $$buff, $len, $offset); next unless /\*/; # not a pattern match $pat =~ s/\*/.*/g; # turn it into a pattern (my $i = $$self) =~ s/^\*(\w+::fh\d{5})+//; my $ref = \*{"Fh::$fv"}; $query = new CGI(\*STDIN); $query->save(\*FILEHANDLE) $q->save(\*OUT); my $q = new CGI(\*IN); 正規表現の中にあるのは、'*' がメタ文字なのでそのエスケープ。 それ以外は、型グロブのリファレンス。

noname#179638
質問者

お礼

 sakusaker7さま、ありがとうございました。 20ポイント出しておきます。

noname#179638
質問者

補足

 sakusaker7さま、ご回答ありがとうございます。  正規表現の*は「直前の文字の0回以上の連続にマッチ」でしょうか?  リファレンスはC言語で言うところのポインタの&(指す)みたいなモノ? スカラーとかだけじゃなくて型グロブでもリファレンスが使えるのですね!? 「\*ファイルハンドル名」 でファイルハンドルへのリファレンス?

関連するQ&A