perl学习笔记5 z

Perl学习笔记(二)——运算符 Perl学习笔记(二) 注:学习笔记主要来源于Superor的Perl教程视频,附链接。 第5集:第三章 perl中的运算符link 第6集:第三章 perl中的运算符link 第7集:第三章 perl中的运算符优先级link 1. 算数操作符 加+;减-;乘*;除/;幂**;余%;负-; %操作数为整数,否则要截取,第二个数不能为0; **指数为效数时,底数不能为负数; 当字符串参加运算时,可转化为整数,若不能转化为整数则值为0; 2. 数字的比较 <;>;==;<=;>=; 阅读详情

1.  递归

略 

2.  作用域规则:全局、字典和动态的

Ø         标识符的“作用域”是指程序中一个特定的部分。只有在这个部分中,才可对此标识符进行引用。有的标识符可在程序中的任何地方引用;另一些则只能在有限的部分才能引用。

Ø         字典作用域变量,只有在定义他的那个代码快中才能使用它。

Ø         动态作用域变量,只有从它创建位置开始,一直到当前块结束之前,才可使用它。

Ø         使用our定义全局变量;my定义字典变量;local定义动态变量。

Ø         在子程序中,所有字典和动态变量肯定会“覆盖”同名的全局变量,但不是删除。

Ø         在子程序中定义的字典变量,只能在这个子程序内访问,如果在子程序中存在另一个子程序,那么这个子程序将不能使用字典变量。但子程序中定义的动态变量,却可以被使用。

Ø         假如一个子程序要求使用来自另一个子程序的变量来完成任务,那么应把该变量作为一个参数明确的传递给子程序,而不是把它声明成全局变量或动态变量。

3.  名字空间、包和模块

Perl利用“包”或“名字空间”来决定变量和子程序标识符的可访问性。也可用包来访问在其他名为“模块”的文件中定义的标识符。

在默认情况下,perl源码文件中的全局标识符(全局变量和子程序)属于main包的符号表的一部分。

Ø         可以使用package语句对当前包进行修改。

Ø         使用require关键字可以向程序添加一个新的包

Ø         Require关键字首先在当前目录中查找新添加的语言包,然后在由数组@INC指定的目录中查找。

Ø         完整的变量名是由包名、::和变量名组成的。如

$FirstPackage :: variable

 

模块

模块本质上就是一种“包”,它使程序员能更全面的控制模块用户对那个模块的包内的标识符进行引用。模块的优点在于:程序员可设定一个标识符无论如何都可由模块用户使用——好像这个标识符本来就是在用户的程序中定义的那样。便可在不采用完整形式的前提下,使用其他地方的标识符。

Ø         Use和require语句类似,主要的区别在于:use是在编译时导入模块和包的,require是在执行时导入的。如在编译时导入,perl保证在程序执行前,便可让包进入可用状态,否则的话,可能不能发现包的缺失。

Ø         在基本的“包”的基础上,模块还提出了额外的几项要求。首先,文件必须有一个.pm扩展名。Require这个关键字允许指定其他扩展名,如.pl。

Ø         为了能够从一个模块导出标识符,以便在另一个文件的名字空间里使用。这样在其他文件使用标识符的时候,便不再需要指定完整形式的名字。为了达到这个目的,必须把模块设置成为一个Exporter模块。这个Perl标准模块提供了相应的功能,可导出标识符,以便在其他文件中使用。

use Exporter;

                     它的作用就是指出当前模块使用Exporter模块。

                                   our  @ISA = qw ( Exporter );

它的作用是指出在特殊的内建数组@ISA内,包含了Exporter。换言之,当前模块“就是”(ISA)一个Exporter。这样一来,我们的模块就具有了Exporter的特性,允许把名字从一个模块空间导入其他名字空间。

现在,模块已具有了输出标识符的能力。随后,必须指定要导出的标识符。

              Our @EXPORT =  qw( @array  &greeting );

它可把项目添加到特殊的内建数组 @EXPORT中。使用这个模块的任何程序都可以直接使用数组@array和子程序greeting内的标识符

Ø         使用use导入的模块,在模块的末尾必须增加如下语句

return 1;

                     表示模块导入完成。模块的最后一条可执行语句必须是返回真值的一个语句。

Ø         use语句的其他特点:

1.         在use后面加上一个版本号,如下所示:

Use v5.6.0

那么prel会把指定的版本号同系统中安装的perl的版本号对比,假如指定的版本号大于当前的版本号,便会产生一个错误。

 

2.         除了能够导入一个完整的模块外,perl还允许导入模块的不同部分。假如为use提供了一个参数列表,那么它只会从模块里导入特定的项目。如:

Use  FirstModule qw( @array );

上述命令将只导入@array数组。

3.         use关键字还有一个搭档—no关键字。利用no关键字,程序可明确规定不从一个名字空间里导入指定项目。语法等价于use。

4.  预编译指令

预编译指令(Pragmas)是指一种特殊的语句,编译器用它来设置自己的编译选项。

Ø         use strict语句:

use strict语句可强迫程序员把所有变量都声明为包变量或字典作用域变量。另外,他也强迫程序员用引号把所有字串封闭起来,而且必须明确地调用每一个子程序。

可以向 strict传递一些特殊的“标记”参数,从而让perl知道应该去检查什么,其中两个标记是‘vars’和‘subs’。

比如,vars标记要求perl确保每个变量名都采用完整形式—同时包含它的包名。

比如,subs标记要求perl拒绝用一个裸字调用子程序。

 

一个变量可以通过4种途径满足use strict的要求。首先,随my关键字定义的变量处在字典作用域中,可在定义他的那个块里用他的短名字来进行引用。第二,随our关键字定义的包变量放置在符号表中。在定义这些变量的那个包的范围内,可用它的短名字来进行访问。而在包外,就必须用完整形式的名字来访问他们。第三,所有情况下都可利用完整形式的名字来访问变量—包括定义他们的那个包中。最后,一个程序可指定一个use vars语句,在后面跟随一个变量名列表,如下所示:

              use  vars  qw( 变量1  变量2  变量3);

 

Ø         use  warnings语句

这个预编译命令用于警告用户一些可能出现的打字错误、使用了未初始化变量以及代码里其他潜在的问题。

Ø         也可以使用no命令关闭warnings和strict。例如使用如下命令:

no  strict;

               记住,一旦进行了这样的设置,那么屏蔽效果会一直持续到代码块末尾解除—或者直接使用use strict重新激活。

Ø         use constant语句

使用use constant语句可以创建一个固定标量变量,作为一个常量使用。

Ø         use diagnostice语句

它可以显示更加详细的错误提示信息。

Ø         use integer语句

告诉程序使用整数运算方式来执行所有的数学运算。


<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
【学习笔记】山东大学生物信息学——Perl 语言基础入门+高级 生物信息学——Perl 语言基础入门+高级 阅读详情

相关推荐

别再只调包了!深入理解机器学习虚拟筛选中的分子指纹(ECFP/Morgan)

本文深入探讨了ECFP/Morgan分子指纹在机器学习虚拟筛选中的应用与优化策略。通过解析半径参数与比特长度的化学意义,揭示了如何通过参数调优提升模型性能20%以上,特别适用于药物发现领域的高通量筛选。文章还提供了工程实践中的参数优化策略和多指纹融合技术,为开发者提供从理论到实践的全面指导。

weixin_33704234的博客 829

perl constant的使用

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34267123的博客 1178

李沐之数值稳定性+模型初始化和激活函数

层记为t,这里的y不是预测,还包括了损失函数,y是优化函数,不是预测的结果y。第t层是输出。所有的h都是一些向量,向量关于向量的导数是一个矩阵,所以用了很多次的矩阵乘法,出问题就在这里。

m0_51133942的博客 1527

小时代5-perl 常量、多维数组及变量的初始化

下面我们通过两段代码来了解一下perl中常量,数组,及变量的定义和初始化: 常量及数组的初始化: #!/usr/bin/perl use strict; use warnings; my $test = "asdf"; print "${test}_test2n"; #constant use constant {...

weixin_33810302的博客 364

历年北京理工大学复试专业综合题

。

A place to record sth. 2万+

【Flink】状态编程: 订单超时告警

文章目录一、基础概念二、Flink状态编程1、支持的状态类型2、Managed Keyed State六种类型基本API状态的生命周期3、Managed Operator State三、案例:订单延迟告警统计1、需求描述2、需求分析3、数据与模型4、详细实现 一、基础概念 在Flink架构体系中,有状态计算可以说是Flink非常重要的特性之一。 有状态计算是指: 在程序计算过程中,在Flink...

一只皮皮熊 2864

Perl常用模块总结

(1) Net::FTP (2) Net::Telnet (3) LWP::Simple, get() (4) Expect (5) XML::Simple, XMLin() (6) Data::Dumper, Dumper() (7) IO::Socket (8) Date::Manip, DateCalc(), UnixDate() (9) Date::Manip, Date_

wangwenwen的专栏 9256

用OpenIPC复活你的旧摄像头:手把手教你给君正T31芯片设备刷开源固件

本文详细介绍了如何使用OpenIPC项目为君正T31芯片的旧摄像头刷入开源固件,解锁更多功能并延长设备寿命。从硬件识别、风险控制到详细刷机步骤和后期配置,手把手教你将闲置摄像头改造为智能监控设备,实现隐私可控、功能扩展等优势。

weixin_30790841的博客 772

[经验总结]Perl模块使用 => 简短例子代码集合

<br />[原创] Perl模块使用 => 简短例子代码集合!http://www.chinaunix.net 作者:deathcult  发表于:2003-09-04 14:59:54【发表评论】 【查看原文】 【Perl讨论区】【关闭】<br />如果你有模块使用范例(请尽量简洁),请帖新贴, <br />或坛内邮件(主题:perl模块使用范例)给我,由我测试 <br />整理以后,在此发布。 <br />希望多多支持! <br /><br />真心希望朋友们能在chinaunix受益。大家共同进步!

ThinkHY的专栏 2831

《C#零基础入门之百识百例》(七)算数运算符 -- 圆的面积

运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。C# 有丰富的内置运算符,本文带你学习C# 中算数运算符。

陈言必行 -- Unity游戏开发领域优质博主 3615

信号的反射(振铃、台阶、回勾、尖峰毛刺)

反射是怎么形成的 假设信号传输过程中,经过两个阻抗不同的区域,如下图所示。区域1阻抗为Z1,区域2阻抗为Z2。 在分界面处,电压必须是连续的,否则,在分界面处会产生无穷大的电场,这在真实世界中是不可能的。 同样,分界面两侧的电流必须是连续的,否则分界面处会产生无穷大的磁场。 因此: 根据欧姆定律,必然有: 显然如果Z1≠Z2的情况下,上面式子不可能同时成立。如何理解这一困境? 应该从 ...

sinat_15677011的博客 1万+

perl学习笔记7 z

1.  单引号字串是包含在一对单引号内的任何字符序列。Perl认为包含在单引号内的每一个字符都不具有任何特殊的意义。唯一的两个例外是换码序列反斜杆单引号(/’),它代表字串内一个应保持原样的单引号;以及两个连续的反斜杠(//),它代表字串内一个应保持原样的反斜杠。2.  双引号是包含在一对双引号内的任何字符序列。在双引号字串中,可包含换行符(/n)、制表符(/t)或其他换码序列字符。Perl

1218

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

perl5中锚位修饰符\A \z \Z 和perl4中^(开头)和$(结尾)的区别

习惯使用perl4的开发者总是用^表示字符串开头锚位,用$表示字符串结尾锚位,比如\^https://\ 将会匹配所有以https://开头的字符串,同样,\.bmp$\将会匹配所有以.bmp结尾的字符串。但是到了perl5,有了\A ,\Z , \z三种锚位,这三种锚位中,\A与^相同,表示匹配以某模式开头的字符串,而\z就与$相同了…… 但是如果有了/m,则^表示行首而不再是字...

weixin_30716141的博客 717

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

[转]perl 学习笔记 z

刚到公司第一个项目居然是做CGI 的开发,从来没有接触过,于是开始学习perl语言,网上搜了一个遍,文档不是很多,大部分都是一篇文章反复转载的,文章开头大部分都是说perl语言怎么简单,怎么灵活,稍微整理了一下开始看,按照经验,从-变量类型-数组-控制-循环-函数调用-内置函数。。一路开下来,两天下来觉得自己已经入门了,于是开始看原项目代码,结果90%的代码都看不懂,感觉很失败,perl语言真的

333

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

perl调用其他的perl_如何使Perl更优雅

perl调用其他的perl 这是关于将代码从Perl 5迁移到Perl 6 的系列文章中的第七篇 。本文着眼于如何在Perl 6中创建类(对象)以及它与Perl 5的区别。 Perl 5具有非常基本的面向对象形式,您可能会认为这是事后才想到的。 为了改善这种情况,已经进行了几次尝试,其中最著名的是Moose ,它“很大程度上基于Perl 6对象系统,并且借鉴了CLOS,Smalltalk和许...

cuml0912的博客 865

perl中bless的理解(zz) z

bless有两个参数:对象的引用、类的名称。类的名称是一个字符串,代表了类的类型信息,这是理解bless的关键。所谓bless就是把 类型信息 赋予 实例变量。程序包括5个文件:person.pm :实现了person类 dog.pm :实现了dog类 bless.pl : 正确的使用blessbless.wrong.pl : 错误的使用blessbless.cc : 使用C++

1154

perl学习笔记10 z

1.  文件检测和sysopenPerl提供了文件检测功能,使程序能发现磁盘上的文件和目录的信息。 检测项含义检测项含义-r文件或目录是否可读-w文件或目录是否可写-e文件或目录是否存在-z文件或目录存在且大小为0-o文件或目录归用户所有-R文件或目录对真正的用户可读-W文件或目录对真正的用户可写-X

1660

Perl黑客需要知道的10件事 z

    Perl是专家级的系统管理员的首选脚本语言,但是它的作用远远不止这些。作为一个设计用于文件和文本处理的语言,除了其他多种用途之外,它还极其适用于UNIX系统的管理、Web编程,以及数据库编程。    作为一门最容易的编程语言,它非常容易上手,能够为简单的任务编写出高效的代码,因此Perl很容易就吸引了新用户,并成为他们完成自己任务的一个常用的重要工具。在正式开始讨论Perl编程之前,有

486

Perl学习笔记-5

一. 文件测试 获得帮助 perldoc -f -e 测试应用 #-e 测试文件是否存在 die "Oops!A file called '$filename' already exists.\n" if -e $filename; #-M 文件最后一次修改时间到当前时刻之间的天数 warn "Config file is looking pretty old~\n" if -M CO...

beeworkshop的博客 338

Perl如何处理字符串 z

在Perl看来, 字符串只有两种形式. 一种是octets, 即8位序列, 也就是我们通常说的字节数组. 另一种utf8编码的字符串, perl管它叫string. 也就是说: Perl只认识两种编码: Ascii(octets)和utf8(string) 本文内容适用于perl 5.8及其以上版本.perl internal form在Perl看来, 字符串只有两种形式. 一

1043

perl学习笔记

编程中良好的代码格式

qq_48188780的博客 468

[Perl]gVim+Perl::Tidy快速格式化代码 z

版权声明:可以任意转载,但转载时必须标明原作者charlee、原始链接http://tech.idv2.com/2007/10/01/format-code-with-vim-and-perltidy/以及本声明。书写代码时要保持良好的代码风格,缩进、注释、空行等东西一个都不能错。不过这一点很难做到,即使是一个经验丰富的程序员也难免弄错,更别说新手了。另外,有时阅读别人写得面条代码也是异

887

Perl学习

Perl入门工程 想要学习Perl完全是因为好多公司的招聘要求,熟悉Perl或Tcl脚本语言,所以这个月初开始接触Perl,一本书“Perl语言入门_中文版_第六版.pdf”(或英文版“Learing Perl 6th Edition”)以及播布客的“Perl语言视频教程”,就这样启程。 目标: Perl输入最简单的“Hello World!” 准备工作: WIN64环境下,官网下载Ac...

Shaliew 3354

Perl学习笔记(1)——基础语法

Overview Perl简介 Perl(Practical Extraction and Report Language 实用摘录与报表语言),具有高级语言强大的能力和灵活性,可以提供脚本语言(如sed和awk)的所有功能,擅长文本的处理。 Perl的安装 Linux系统:(一般默认已经安装了perl解析器,不需要再安装) tar zxvf perl-XX.tar.gz 找到perl存放目录,删除原始配置信息:rm -f config.sh Policy.sh 使用默认安装,sh Cogfigure -

zgezi的博客 1255
上一篇: perl学习笔记2 z
下一篇: perl学习笔记4 z
KataDoc360
博客等级 码龄18年 65粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值