Perl中的here文档又称作heredoc、here字串或here脚本,是可以在shell命令行和程序语言(像Perl、PHP、Python等)里定义一个字串的方法。
使用概述:
1.使用 =<< 符号定义标识符名称。起始标识符与 =<<之间不能有空格。
2.标识符可以用任意其它字符代替,只需保证结束标识与开始标识一致。
3.结束标识必须顶格独自占一行(即必须从行首开始,前后不能衔接任何空白和字符)。
4.起始标识可以不带引号号或带单双引号,不带引号与带双引号效果一致,解释内嵌的变量和转义符号,带单引号则不解释内嵌的变量和转义符号。
5.当内容需要内嵌引号(单引号或双引号)时,不需要加转义符,本身对单双引号转义,此处相当与q和qq的用法。
下面看例子:
--------------------------------------------------------例一:使用双引号或不使用引号,都可以在文中识别转义符号--------------------------------------------
#!/use/bin/perl
my $inputdir = "/home/ttjy/ack";
my $usage =<<"USAGE"; #起始标识符,可以用其他大写字符代替 #此处 <<与“USAGE”之间不能有空格,否则不能被编译
使用方法:
>______Options:
>______-p>____<DIR>>____Inputfile.
>______-f>____<FILE>>___Inputfile names.
>______-h>____>_________help.
>______-s>____<NUM>>____start site.
>______-l>____<NUM>>____length.
for example:
>______perl -p file_path -f filename -s 0 -l 125
默认文件路径:$inputdir
USAGE #结束标识符必须与起始标识符相同,且需要顶格写,单独占一行。
print "$usage\n"; #可以识别转移符号
----------------------------------结果如下---------------------
使用方法:
>______Options:
>______-p>____<DIR>>____Inputfile.
>______-f>____<FILE>>___Inputfile names.
>______-h>____>_________help.
>______-s>____<NUM>>____start site.
>______-l>____<NUM>>____length.
for example:
>______perl -p file_path -f filename -s 0 -l 125
默认文件路径:/home/ttjy/ack
--------------------------------------------------------例二:使用单引号,不能识别文中转义符号--------------------------------------------
#!/use/bin/perl
my $inputdir = "/home/ttjy/ack";
my $usage =<<‘ABC’;
From here
we can see a
example that it
can not tell you
what is in the
file :$inputdir.
so , do you know now ?
ABC
print "$usage\n";
-------------------结果如下:----------------------------
From here
we can see a
example that it
can not tell you
what is in the
file :$inputdir. #使用单引号,无法转义
so , do you know now ?