Perl 文字列定数等の強要表示がおかしい&No.09695
ひで麻呂 さん 06/03/07 06:49
 
6.00β6でPerlのソースを表示した場合、文字列定数・ヒアヅキュメント・コメント
の強調表示がうまくいケースがありますね。

サンプルのソースをメールで送ります(少し長いので)。

それから要望なのですが、追加になった機能「複数行コメント」では
表示方法をドロップダウンボックスで「普通の文字」〜「特に強調表示4」まで選ぶ
ことができますが、強調表示でも同じ様にしていただければと思っています。現在は
チェックボックスにて選択できるものが少なく、不便を感じています。
よろしくご検討ください。








[ ]
RE:09695 Perl 文字列定数等の強要表示がNo.09711
秀丸担当 さん 06/03/07 16:56
 

>6.00β6でPerlのソースを表示した場合、文字列定数・ヒアヅキュメント・コメント
>の強調表示がうまくいケースがありますね。

メールをいただきました。
ありがとうございます。

確認してみたところ、文字列の判断などで崩れているように見える所があるよう
です。
Perl使いではないのでわからないのですが、これは Perl のソースとして通るも
のなのでしょうか。
それともこれは Perl のチュートリアルのようなもので、ただのテキストなので
しょうか。

例えば、以下のような部分で問題があるようです。

#####################################
1:An Overview of Perl/Getting Started
#####################################

この場合、1:という感じで始まる場合は、Perlはコメントとして認識するのでし
ょうか?
こういった行で、場合によっては / が文字列の開始として認識してしまいます。
(上記のものは認識しませんが)


>それから要望なのですが、追加になった機能「複数行コメント」では
>表示方法をドロップダウンボックスで「普通の文字」〜「特に強調表示4」まで選ぶ
>ことができますが、強調表示でも同じ様にしていただければと思っています。現在は
>チェックボックスにて選択できるものが少なく、不便を感じています。
>よろしくご検討ください。

これをできるようにしてしまうと、従来の形式などと互換が取れない面がでてき
て、少々厄介になります。
でもできたらいいと思います。ネタとして考えたいと思います。

[ ]
RE:09711 Perl 文字列定数等の強要表示がNo.09725
ひで麻呂 さん 06/03/07 19:46
 
>#####################################
>1:An Overview of Perl/Getting Started
>#####################################
>
>この場合、1:という感じで始まる場合は、Perlはコメントとして認識するのでし
>ょうか?

すみません。少し横着をしてしまいました。その部分はコメントにはなりません。

改めて、よく見てみたのですが、ひとつの行にヒアドキュメントを2つ設定した場合
におかしくなるようです。

(送ったソースの718行〜)
    print <<"dromedary", <<"camelid"; # you can stack them
I said bactrian.
dromedary
She said llama.
camelid

次の2行、dromedaryとcamelidに挟まれた部分がヒアドキュメントになりますが、は
じめのdromedaryまでしかヒアドキュメントとして認識されません。

プログラムを実行した場合は次のように表示されます。
I said bactrian.
She said llama.

さらに次の部分が問題なのですが…
THISとTHATがヒアドキュメントですが、「And here's another.」この文の"'"から先
が文字列定数として強調されてしまいます。

(724行〜)
    funkshun(<<"THIS", 23, <<'THAT');
Here's a line
or two.
THIS
And here's another.
THAT

--------------

    print <<'odd'
2345
odd
    + 10000;   # prints 12345

[ ]
RE:09725 Perl 文字列定数等の強要表示がNo.09736
秀丸担当 さん 06/03/08 15:30
 

>すみません。少し横着をしてしまいました。その部分はコメントにはなりません。

そうでしたか。それならばこの部分については問題ではないということにしよう
と思います。

>改めて、よく見てみたのですが、ひとつの行にヒアドキュメントを2つ設定した場合
>におかしくなるようです。

rubyのほうはやっているのですが、perlは複数のヒアドキュメントができるとい
う文法が見当たらなかったのであえて無効にしていました。
perlでもできるのでしょうか。
perlでもできるようにしようと思います。

[ ]
RE:09736 Perl 文字列定数等の強要表示がNo.09743
ひで麻呂 さん 06/03/08 16:17
 
>rubyのほうはやっているのですが、perlは複数のヒアドキュメントができるとい
>う文法が見当たらなかったのであえて無効にしていました。
>perlでもできるのでしょうか。

仮に次のような2つのPerlスクリプトを実行した場合、次のような結果となります。
ActivePerl 5.8.7 Build 815で確認。

(a.pl)
#! perl

print <<"dromedary", <<"camelid"; # you can stack them
I said bactrian.
dromedary
She said llama.
camelid


(a.pl実行結果)
I said bactrian.
She said llama.

(b.pl)
#! perl

print <<"THIS", 23, <<'THAT';
Here's a line
or two.
THIS
And here's another.
THAT

(b.plの実行結果)
Here's a line
or two.
23And here's another.


[ ]