16時42分01秒 [Perl/CGI]
プログラミング言語のPerlでは、行内に存在する「#」記号から行末までの間がコメントとして無視されます。「#」以後をコメントとして扱うプログラミング言語や各種設定ファイルはよくあります。
しかし、Perlには「$#配列名」のように「#」を含む記法があります。
具体的には、配列 @abc
があったとき、この配列の最終要素番号を得るには $#abc
と記述します。
なので、この場合にはもちろん「#」以後はコメントにはなりません。
問題は、テキストエディタの色分け機能では、そこまでは考慮されないという点です。
EmEditorも例に漏れず、デフォルト設定のままだと、言語設定をPerlにしていても $#abc
という記法を含む行では、「#」記号から行末までがコメントとして取り扱われてしまうため、もしその行内にカッコが存在すれば、カッコの自動対応が取れなくなってしまいます。
これでは少々困るのですが、「#があれば行末までをコメントとする」・「しかし#の直前に$があればコメントにはしない」のような実装は正規表現を使って判断しないといけなくなり、軽さを重視するテキストエディタでは難しそうです。
そこでおすすめの方法が、コメントの判定方法を、デフォルトの「#
以後をコメントとする」から、「#
以後をコメントとする」に変更することです。
ぱっと見た感じ同じに見えますが、#
記号の直後に半角スペースがある点が異なります。
よくよく考えると、コメントを書くときに「#」記号から間髪入れずにコメント本文を書くことは滅多にありません。
たいていは、「#」記号の直後には空白を入れて1文字分離してからコメントを書くことがほとんどです。
(ただ、その空白は「半角スペース」以外にも「タブ」が使われることもありそうですが。)
EmEditorでは、何をコメントとして取り扱うかは言語別(ファイルの種類別)に設定できます。
なので、下図のように言語がPerlだったときのコメントとしては #
(=「#」+「スペース」)を設定しておけば、$#abc
という配列の最終要素番号を得る記述をコメントと扱ってしまうのを防げます。
もし「#」記号の直後からコメント本文を書いている箇所があればコメントとして認識されなくなりますが、多くないのであれば実害はないでしょう。
見つけたときに半角スペースを加えておけば済む程度でしょうし。
というわけで、EmEditorでPerlの$#hoge
記法をコメントにしない設定方法でした。
この日記へのコメントはお気軽に! コメント数:0件
(前の記事) « Windows10で「設定」→「システム」を開くとウインドウが一瞬で落ちる現象の解決記録
前後のエントリ
< 旧 / 新 >
(次の記事) 独自ドメイン20周年。もうそんなに経ったのか »
コメント数: 0件