Perl语法的基本规则
因为是比较凌乱的用法规则收集,所以能看懂则看,不能看懂也无所谓。以后也会遇到。
- Perl脚本第一行使用
#!。Perl的后缀名一般为".plx"或".pl",运行时使用perl NAME.plx即可
例如,1.plx内容如下:
#!/usr/bin/perl
print "hello world\n"
执行该脚本:
shell> perl 1.plx
- 注释。Perl只支持"#"注释,所以只支持单行注释、行内到结尾注释
# comment
print "hello world\n" # comment
Perl脚本中,除了最后一行,每行都需要以";"结尾,除非是注释行
Perl中不需要对变量进行声明,可以直接赋值、引用
$var=12;
print $var;
- use指定使用某个版本的perl,如5.10版本。注意,use中是5.010而不是5.10,
use 5.10会被perl认为是5.100版
use 5.010;
如果指定更细致的小版本号,如5.10.1版,则:use 5.010001;。
- 最好都加上
use utf8语句
use utf8;
- 最好在每个Perl程序中加上
use strict语句,这在后面写稍大一点的Perl程序基本上是一种规范
该功能让Perl编译器以严格的态度对待Perl程序,如果定义了变量却未使用过,或者引用了未定义过的变量,都会编译错误。
use strict;
- 可以加上warning信息进行调试
use warnings;
或者perl -w,或者在Perl脚本中:
#!/usr/bin/perl -w
- Perl中可以通过反引号来执行操作系统中的命令
$var=`date +"%F %T"`
print $var
- Perl中调用自带的内置函数时,可以使用括号传递参数,也可以省略括号
例如,调用print函数:
print("hello world\n");
print "hello world\n";
- Perl中的ENV:Perl可以通过ENV这个hash直接访问操作系统的环境变量
print $ENV{PATH}; # 输出操作系统的PATH环境变量
如果Perl想访问操作系统中某个变量,可以直接在操作系统中设置,然后通过Perl访问:
$ myvar=2;export myvar;
print $ENV{myvar};
- Perl中token之间如果是不同的命名类型,则中间的空格分隔符号可以省略
主要体现在函数和参数之间的空格。
print"abc","def\n"; -> print "abc","def\n"
print$var; -> print $var
my$var="abc"; -> my $var
print~~length$var -> print length $var
显然,参数部分的首字符如果是数值、下划线或字母,则会被当作函数名的一部分进行解析,这是错误的省略方式:
print1+3;
Perl语法的基本规则的更多相关文章
- Perl 语法 - 基础
perl语言的核心是正则表达式,在文本处理上非常有优势,与python类似,但语法不同,perl的语法很灵活,用多了才会觉得好用. 常用知识点总结: perl语法类似于C语言(perl源于Unix), ...
- perl 语法速查
同时学perl.python和shell脚本会很容易将它们的语法搞混,本文主要是一个个人的总结,方便要用时的查询. perl基本语法.安装.帮助文档 文件头格式: #!/usr/bin/perl us ...
- Perl 语法 - 高级特性
总结: q().qq().qw(同单引号).qx{牢记是花括号},分别是单引号.双引号.创建字符串列表 和 捕获命令输出. 第9学时 其他函数和运算符 一件事情可以使用多种方法完成. 有哪些其他的 ...
- 一个linux内核编译时遇到的perl语法导致的编译问题解决
在编译linux内核时,遇到了一个比较诡异的问题.具体log如下: Can't locate strict.pm in @INC (you may need to install the strict ...
- 读写生信流程必备的 Perl 语法
最早就是写Perl的,后来来到公司转Python,现在又要负责流程了,开始重拾Perl,当然是借鉴别人现有的语法,我再重新组合. 基本语法就不介绍了,参照我之前文章 Perl 模块 use str ...
- perl 语法速查 | 模块安装
perl -MCPAN -e shell install Bio::SeqIO 或者直接perl -MCPAN -e 'install Excel::Writer::XLSX' 用cpan装不上,编译 ...
- Perl系列文章
0.Perl书籍推荐 Perl书籍下载 密码:kkqx 下面是一些我学习Perl过程中读过完整的或部分章节的觉得好的书. 入门级别1:<Perl语言入门>即小骆驼 入门级别2:<In ...
- 精通Perl(第2版)
精通Perl(第2版)(通往Perl大师之路必读经典书籍,体现了一种编程思维,能够帮你解决很多实际的问题) [美]brian d foy(布瑞恩·D·福瓦)著 王兴宇 刘宸宇 译 ISBN 978 ...
- perl 学习杂项笔记
### 由于perl 语法属于很自由的那种, 建议出现错误的时候打开 -w 或者使用 -Mdiagnositics 试一下 ### 如何调试 perl程序 http://www.ibm.com/dev ...
随机推荐
- C#HTTP请求之POST请求和GET请求
POST请求 /// <summary> /// POST请求获取信息 /// </summary> /// <param name="url"> ...
- Java类更改常量后编译不生效
在Java文件中,指向编译时static final的静态常量, 会被在运行时解析为一个局部的常量值(也就是说静态常量在编译后,成为了常量,而不是原先的代码).这对所有的基础数据类型(就像int ,f ...
- RabbitMQ Routing 消息路由
上篇文章中,我们构建了一个简单的日志系统.接下来,我们将丰富它:能够使用不同的severity来监听不同等级的log.比如我们希望只有error的log才保存到磁盘上. 1. Bindings绑定 上 ...
- attention 介绍
前言 这里学习的注意力模型是我在研究image caption过程中的出来的经验总结,其实这个注意力模型理解起来并不难,但是国内的博文写的都很不详细或说很不明确,我在看了 attention-mech ...
- C++ Opencv Mat类型使用的几个注意事项及自写函数实现Laplace图像锐化
为了提升自己对Opencv中Mat数据类型的熟悉和掌握程度,自己尝试着写了一下Laplace图像锐化函数,一路坎坷,踩坑不断.现将代码分享如下: #include <opencv2/opencv ...
- mybatis foreach报错It was either not specified and/or could not be found for the javaType Type handler
或许是惯性思维,在mybatis使用foreach循环调用的时候,很多时候都是传一个对象,传一个List的情况很少,所以写代码有时候会不注意就用惯性思维方法做了. 今天向sql传参,传了一个List作 ...
- python通过手机抓取微信公众号
使用 Fiddler 抓包分析公众号 打开微信随便选择一个公众号,查看公众号的所有历史文章列表 在 Fiddler 上已经能看到有请求进来了,说明公众号的文章走的都是HTTPS协议,这些请求就是微信客 ...
- 将本地代码上传到github走过的坑
1.因为github是服务端,需要自己在自己的电脑上安装一个客户端git 2.配置SSH(配置一次就好了) github是不能随便上传代码上去的,而是通过一种网络协议---SSH授权的.SSH是一种网 ...
- web容器 web服务器 servlet/jsp容器 之间的区别和关系
今天学习tomcat时发现一篇写的比较好的文章,故分享给大家 Web服务器(软件): Apache http server, 这个它的网址,http://httpd.apache.org/downlo ...
- 关于git 指令
命令行操作(由于是Linux命令行下的普通用户,都是在$级别下操作): 一. 本机配置 添加用户 git config –global user.name “XX” git config –gloab ...