Perl的here文档机制是从UNIX shell中的here文档机制派生而来的。

和在shell中一样,Perl中的here文档也是面向行的引用表单,要求提供<<运算符,其后跟随一个初始的终止字符串。

<<之后可以不出现空格。

如果终止字符串没有加上引号或双引号,则允许执行变量表达式。

如果终止字符串上加了单引号,则不执行变量表达式。用户应当把文本的第一行内容插入到第一个和最后一个终止字符串之间。

最后一个终止字符串必须位于该行上,且周围不允许出现空白字符。

与UNIX shell不同的是,Perl不允许在here文档中执行命令替换。

另一方面,如果将终止字符串包含在反引号中的话,Perl也允许在here文档中执行该命令。

#!/bin/perl $price=100;

1 print <<EOF; # No quotes around terminator EOF are same # as double quotes

2 The price of $price is right. # Variables are expanded

3 EOF

4 print <<'FINIS';

5 The price of $price is right. # The variable is not expanded # if terminator is enclosed in single quotes

6 FINIS

7 print << x 4; # Prints the line 4 times

8 Christmas is coming! # Blank line is necessary here as terminating string

9 print <<'END'; # If terminator is in backquotes, # will execute UNIX commands

10 echo hi there

11 echo -n "The time is "

12 date

13 END

(Output)

2 The price of 100 is right.

5 The price of $price is right.

8 Christmas is coming!

Christmas is coming!

Christmas is coming!

Christmas is coming!

10 hi there The time is Fri Nov 3 17:03:46 PST 2000

【责任编辑:云霞 TEL:(010)68476606】
回书目   上一节   下一

perl学习之HERE文档的更多相关文章

  1. MongoDB学习笔记:文档Crud Shell

    MongoDB学习笔记:文档Crud Shell   文档插入 一.插入语法 db.collection.insertOne() 将单个文档插入到集合中.db.collection.insertMan ...

  2. ElasticSearch 5学习(8)——分布式文档存储(wait_for_active_shards新参数分析)

    学完ES分布式集群的工作原理以及一些基本的将数据放入索引然后检索它们的所有方法,我们可以继续学习在分布式系统中,每个分片的文档是被如何索引和查询的. 路由 首先,我们需要明白,文档和分片之间是如何匹配 ...

  3. Perl:写POD文档

    官方手册:https://perldoc.perl.org/perlpod.html POD文档是perl的man文档,可以用perldoc输出,也可以直接用man输出.在开始下面的文章之前,请先粗略 ...

  4. python 学习之FAQ:文档内容写入报错

    2017.3.29 FAQ 1. 文档内容写入报错 使用with open() as file: 写入文档时,出现'\xa9'特殊字符写入报错,通过print('\xa9')打印输出“©”. > ...

  5. redis module 学习—官网文档整理

    前言 redis在4.0版本中,推出了一个非常吸引的特性,可以通过编写插件的模式,来动态扩展redis的能力.在4.0之前,如果用户想拥有一个带TTL的INCRBY 命令,那么用户只能自己去改代码,重 ...

  6. apidoc学习(接口文档定义取代word)

    apidoc的安装,参考:https://blog.csdn.net/qq_36386771/article/details/82149848 生产文档,需要先编写一个apidoc.json对接口文档 ...

  7. HTML5学习之跨文档传输消息(七)

    新标准中提供了文档之间直接的消息传输API.而且不限制跨域消息传递! 发送消息使用的是Window对象的postMessage(data,targetURL)方法就可以了,但给哪个window对象发送 ...

  8. MongoDB学习(查找文档和其他数据查找操作)

    理解Cursor对象和查询运算符 cursor对象 cursor对象相当于一个指针,可通过迭代它来访问MongdoDB数据库中的一组对象. 在使用 find() 方法查询时,返回的并非实际文档,而是一 ...

  9. Linux命令学习之路——文档连接创建:ln

    使用权限:所有角色 使用方式:ln [ -options ] source target 作用:建立源文件与目标文件之间的连接 注意点: 1.连接分为硬连接和软连接,其中硬连接不能对目录做硬连接,且不 ...

随机推荐

  1. JS中一个new到底做了哪些事情?

    1.https://www.cnblogs.com/faith3/p/6209741.html 2.https://www.cnblogs.com/AaronNotes/p/6529492.html

  2. nutzboot dubbo zookeeper简单使用

    提供方和消费方properties 配置基本差不多 nutz.application.name这个值不一样 提供方配置自动端口就行server.port=0 消费方一般需要对外提供web服务配置ip和 ...

  3. djangoAdmin组件

    定制后台页面功能 from django.contrib import admin from app import models # Register your models here. class ...

  4. Codeforces Round #542(Div. 2) A.Be Positive

    链接:https://codeforces.com/contest/1130/problem/A 题意: 给n个数,找出一个非0整数d,使所有n个数除以整数d后,数组中正数的数量>= n/2. ...

  5. Codeforces 1137B(kmp next数组构造)

    为了物尽其用,Next求出最多有哪部分能重复使用,然后重复使用就行了-- const int maxn = 5e5 + 5; char s[maxn], t[maxn]; int cnts0, cnt ...

  6. Django 使用allauth报错

    一:报错 RuntimeError: Model class django.contrib.sites.models.Site doesn't declare an explicit app_labe ...

  7. audio、video的控制

    W3C上面给的是js控制相关的播放与暂停,不过在实际开发中我们多会选择JQ来操作的,毕竟方便很多,而play()和pause()用于js play并不是jQuery的函数,而是DOM元素的函数,所以我 ...

  8. Linux防火墙iptables配置开放某个端口

    开放某个端口 查看防火墙规则命令: iptables -L -n 添加端口 1.编辑iptables文件 vim /etc/sysconfig/iptables 2.添加开放端口配置 -A INPUT ...

  9. Spring注解和JDK注解

    1.添加xsd约束 xmlns:context="http://www.springframework.org/schema/context" http://www.springf ...

  10. CentOS7下Oracle11gR2监听启动错误解决

    oracle监听程序启动失败,错误如下: [oracle@localhost ~]$ lsnrctl start LSNRCTL - Production on -APR- :: Copyright ...