>favorites2.plの3行目の"\\.url\$"の意味がよく分かりません。
>これは36行目の/$pat/で使われるパターンということまでは
>分かるのですが、これは例えば
>C:\Documents and Settings\Duo\Favorites\msn.co.jp.url
>の.urlでマッチさせているということで良いのでしょうか。
その通りです。
>とりあえず最初の\は次の\をエスケープさせるものだと思うの
>ですが、そうなると.urlの.をエスケープさせる\がないように
>思えます。
この場合、"\\.url\$"というように""で文字列を括りますと、\
によるエスケープによって、すなわち、\<文字>と書くと、<文字>
そのものになりますので、/$pattern/に代入されたときは、/\.url
$/ となります。\\とすると、\\は"文字列"のダブルクォート内で
評価されると\という文字に置き換わると考えてください。一つ\が
残っていれば、\.は"."の文字そのものを意味します。正規表現で
は、"."は文字一文字にマッチしますので、ピリオド"."のみにマッ
チするようにするためには、"\."とする必要があるわけです。
>最後の\$の意味もよく分かりません。これはエスケープ
>してるのでしょうか。
おっしゃるように、エスケープしています。この場合は、\をはず
すと次のようなエラーになります。
C:\anhttpd\cgi-bin\awakening>jperl favorites2.pl
Final $ should be \$ or $name at favorites2.pl line 3,
within string
syntax error at favorites2.pl line 3, near ", "\\.url$""
Execution of favorites2.pl aborted due to compilation errors.
なぜかというと、$" は特殊変数で、リストセパレータなので
す。通常は半角空白が入っています。それで行末を意味する"$"そ
のものにするために\を付けてエスケープしているのです。
説明が足りませんでしたね。申し訳ありません。実用的に動作す
るスクリプトというものはあらゆる要素を含んでいますので、説明
不足が結構あるかもしれません。なんなりとご質問ください。