2016-09-18 10 views
1

perlでは何をしますか?私はどこでも探してみましたが、perlのサポートは他の言語に比べてあまり良くありません。私が見たところでは、それは制御文であり、構文は\ cXであり、xは任意の文字であることが示されています。しかし、それは何も説明していません。だから誰もそれが何をし、それを使用する方法を説明してくださいできますか?perlの " c"の目的は何ですか?

+2

'perl -l -e 'print" \ cC "''を試してください。 - これはcontrol-Cと改行を表示します。 '' \ cX 'はどういう意味だと思いますか? (ASCIIコードセットに '@ABCDEFGHIJKLMNOPQRSTUVWXYZ [\]^_'が連続した文字コードであるためにのみアルファベットを指定するわけではなく、 'perl -l -e 'print" \ c _ "''を使って0x1Fを出力するか、コントロールアンダースコアまたは 'ユニットセパレータ'など) –

+2

[perlop](http://perldoc.perl.org/perlop.html#Quote-and-見積りのような演算子)。 –

+2

"perlのサポートは他の言語に比べてあまり良くありません"。それは本当に本当ですか?私は一般的に[Perl documentation](http://perldoc.perl.org/)がかなり良いことを知っています。 –

答えて

7

コメントを回答に転送します。

試してみてください。

perl -l -e 'print "\cC"' 

それは(あなたがod -cまたはxxd -g 1またはいくつかの類似のデータダンパーにパイプにそれが必要になる場合があります)コントロール-Cと改行を出力します。今あなたはどういう意味ですか?'\cX'

ASCIIコードセットは、連続する文字コードとして@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_を持っているという理由だけで、ドキュメントがアルファベット規定するものではありません、あなたは、たとえば、使用することができますが0x1Fまたはコントロール・アンダースコアや「単位の区切りを印刷する

perl -l -e 'print "\c_"' 

'などがあります。小文字または大文字を使用できますが、アルファベット以外の文字のみが表示されます("\[email protected]"はヌルバイト、Cでは'\0')。バックスラッシュには特別な処理が必要であることに注意してください。エスケープシーケンスは、文字列の最後には現れません。

perl -l -e 'print "\c\X"' 

0x1C(control-backslash)の後にXと改行が続きます。

perl -l -e 'print substr("\c\X", 0, 1)' 
ます。また、ASCIIベースのプラットフォーム上で、DEL文字、0x7Fのを印刷する \c?を使用することができます

(:私はあなたが文字列の最後にそれが必要な場合は、サブストリング操作を使用する必要がありますことを推測しますそれがあなたにとって問題である場合、またはあなたの好奇心がうかがえる場合は、EBCDICの下での意味についてのマニュアルを参照してください)。

Håkon Hæglandcommentに記載されているように、perlopのマニュアルにはQuote and quote-like operatorsの詳細があります。

+2

'\ c'の後に続く文字は、いったんどんな文字であってもかまいません。 5.20では印刷できないASCIIを使用することは推奨されなくなり、5.22ではエラーになりました。 – ikegami

+0

@ikegami:興味深い。私はそれが現在のものなので、5.24のドキュメントを見ていましたが、それについて言及していませんでした(しかし、セクション全体を完全に精査し​​なかったので、はっきりと分かりません)。余分な情報をありがとう。 –

+0

5.24の文書で言及されていないのは、5.22で削除されたためです。 – ikegami

関連する問題