答えて
:
print "this is ",
"one line when printed, ",
"because print takes multiple ",
"arguments and prints them all!\n";
print "however, you can also " .
"concatenate strings together " .
"and print them all as one string.\n";
print <<DOC;
But if you have a lot of text to print,
you can use a "here document" and create
a literal string that runs until the
delimiter that was declared with <<.
DOC
print "..and now we're back to regular code.\n";
このマニュアルの詳細は、マニュアルのperldoc perlopを参照してください。
それが何かは、文字列を返すようにHere Documentと呼ばれる使用しています「0030 \ t0039」"here-document"と呼ばれていますし、連結に代替またはリスト操作として複数の行の上に文字列を分割するために使用されている
それisnその点。私の答えを見てください。 – tchrist
これは、文字列"0030\t0039\n"
(\t
)を返します。改行で改行(明らかに)で終わるので、追加される改行は\n
です。
<<FOO
sometext
FOO
は、いわゆるヒアドキュメント、(それが唯一のラインで使用され、ここが)便利な複数行の文字列を記述する方法です。
'\ t'リテラルを作るために追加できる修飾語はありませんか?一重引用符をどこかに置く必要があることを覚えているようです。 – Cameron
@Sinan:はい、しました。修正しました。ありがとう。 – sepp2k
@Cameron:[documentation](http://perldoc.perl.org/perlop.html# << EOF): "一重引用符は、テキストがコンテンツの補間なしで文字通りに扱われることを示します。これは似ていますバックスラッシュに特別な意味がないことを除いて、単一引用符で囲まれた文字列に変換する "。ですから、あなたは '' FOO ''と言う必要があります。 – Vlad
あなたは簡単な実験を試みることによって自分自身を助けることができる:
C:\Temp> cat t.pl
#!/usr/bin/perl
use strict; use warnings;
print MyDigit();
sub MyDigit {
return <<END;
0030\t0039
END
}
出力:
C:\Temp> t | xxd 0000000: 2020 2020 3030 3330 0930 3033 390d 0a 0030.0039..
さて、あなたの場合には、END
は、行の先頭に並んでいないので、あなたはメッセージを受け取ったはずです:
Can't find string terminator "END" anywhere before EOF at …
さて、もしあなたが本当にheredoxに関するレッスンをお送りしたいのであれば、[unichars](http://training.perl.com/scripts/unichars)、[uninames](http:// training.perl.com/scripts/uninames)、[uniprops](http://training.perl.com/scripts/uniprops)、さらには[leo](http://training.perl.com/scripts/leo)きれいに見えるheredoxのために作る。しかし、本当に皆さんは、関数が実際にやっていることを忘れていました。それは、ASCII桁にしか一致しないプロパティを作成しています。 '\ p {POSIX_Digit}'がv5.12リリースの前に登場していたはずです。 – tchrist
@tchrist私はそれが 'deQ' –
あなたはすべてを逃した!
\p{MyDigit}
と\P{MyDigit}
で正規表現を使用するためのユーザー定義プロパティを定義しています。
それはこれらのようなものだ:
sub InKana {
return <<'END';
3040 309F
30A0 30FF
END
}
また、既存のプロパティ名の面で、それを定義することができます。
sub InKana {
return <<'END';
+utf8::InHiragana
+utf8::InKatakana
END
}
あなたはまた、 "C < - >" を使用して減算を設定しないことができ接頭辞を。 だけが文字のブロック範囲だけでなく、実際の文字を必要としていたとします。 あなたはこのようなすべての未定義のもの取り除くことができます:
sub IsKana {
return <<'END';
+utf8::InHiragana
+utf8::InKatakana
-utf8::IsCn
END
}
をあなたはまた、「C」の接頭辞を使用して補完文字セットで起動することができます。
sub IsNotKana {
return <<'END';
!utf8::InHiragana
-utf8::InKatakana
+utf8::IsCn
END
}
私は右でなければならない把握、以来、私はex camelisと話しています。 :)
- 1. 関数ポインタの基本的な質問
- 2. Android基本的な質問
- 3. 基本的な質問
- 4. BACKBONE.JS基本的な質問
- 5. 基本的な質問
- 6. Calendar.getInstance()...基本的な質問
- 7. java基本的な基本的な質問
- 8. テキストリンクの質問の基本的なCSS?
- 9. 基本的なキャスティングの質問(C#)
- 10. CouchDB-基本的なグループ化の質問
- 11. 基本的なSQLモデリングの質問
- 12. 基本的なWPFレイアウトの質問
- 13. 基本的なパラメータの質問
- 14. (.net)設定の基本的な質問
- 15. Amazon S3の基本的な質問
- 16. 基本的なmod_perlの質問
- 17. ラケット構文の基本的な質問
- 18. 基本的なphpmailerの質問
- 19. 春のアノテーション基本的な質問
- 20. 基本的なスカラズ州の質問
- 21. Androidの基本的な質問
- 22. DataGridViewの基本的な質問
- 23. 基本的なウェブデザインの質問
- 24. Prologの基本的な質問
- 25. Javaマルチスレッドの基本的な質問
- 26. 基本的なCプログラミングの質問
- 27. 基本的な "マウント"の質問
- 28. 基本的なPHPの質問
- 29. javascript - 基本的なonclickイベントの質問
- 30. Racketの基本的な質問
あなたがそれを呼び出すとどうなりましたか? –
これは、正規表現で使用するためにASCII数字だけで構成される文字クラスを定義しています。私の答えを見てください。 PS:それは書かれてはならない[Le_Cœur](http://translate.google.com/#en|fr|Where%20is%20my%20heart%3F)、* n'est-ce pas?* – tchrist