2016-06-30 3 views
0

私はhtmlとして出力するプレーンテキストを含むファイルを印刷したい小さなCGI perlスクリプトを用意しています。しかし、今のところ神は、<と>で囲まれたテキストを含んでいます。 <bbb>。問題は、<bbb>が削除されていることです。印刷に問題があります<bbb>-perlで構成します

print "aaa <bbb> ccc"; 

ディスプレイ

aaa ccc 

私の周りに検索が、解決策を見つけることができませんでした:私はこのような単純なprint文を実行する際にも同じことが起こります。とりわけ、私はこれを見つけましたPrinting string in Perl、しかし答えがどのように適用されるのか本当に見ることができませんか?

+0

私は 'print" aaa ccc ";"と問題なく、 'aaa ccc'と表示します。 二重引用符を一重引用符に変更しようとします。おそらく無視される区切り文字をエスケープできます。 –

+0

スクリプトをコマンドラインから実行して提供したprintコマンドの例を試しているのですか、それともCGIスクリプトで、ブラウザでその出力を表示していますか?後者の場合、 '<'を '<'に変更するか、ブラウザが ''をHTMLとして解釈する必要があります。 'escapeHTML()'関数はその変換を行います。 –

+0

その行を 'print'にして' a.pl'という名前のファイルを作成し、iTerm/Terminalで 'perl a.pl'を実行するとします。それは文字列を正確に生成します。だから私はそれを実行する環境は異なるものだと思う。もっと情報を提供できますか? – gugod

答えて

1

出力をWebブラウザで表示していますか?その後

print "aaa &lt;bbb&gt; ccc"; 

を試してみて、あなたがテキストの他の行に、このような変換を行う必要があります場合はHTML::Entitiesモジュールを参照してください。

+0

ありがとうございます。プレタグで表示するプレーンテキストです。私は<'s an >を対応するhtml文字で置き換えます... – OAS

+0

私の場合、これらの2文字を置き換えるだけで十分です。しかし、@grantが示唆しているように、CGIの組み込みのescapeHTML関数が一般的なケースではより良くなることがわかります。 – OAS

関連する問題