`
deepfuture
  • 浏览: 4400275 次
  • 性别: Icon_minigender_1
  • 来自: 湛江
博客专栏
073ec2a9-85b7-3ebf-a3bb-c6361e6c6f64
SQLite源码剖析
浏览量:80072
1591c4b8-62f1-3d3e-9551-25c77465da96
WIN32汇编语言学习应用...
浏览量:70038
F5390db6-59dd-338f-ba18-4e93943ff06a
神奇的perl
浏览量:103344
Dac44363-8a80-3836-99aa-f7b7780fa6e2
lucene等搜索引擎解析...
浏览量:285776
Ec49a563-4109-3c69-9c83-8f6d068ba113
深入lucene3.5源码...
浏览量:15007
9b99bfc2-19c2-3346-9100-7f8879c731ce
VB.NET并行与分布式编...
浏览量:67553
B1db2af3-06b3-35bb-ac08-59ff2d1324b4
silverlight 5...
浏览量:32147
4a56b548-ab3d-35af-a984-e0781d142c23
算法下午茶系列
浏览量:45986
社区版块
存档分类
最新评论

神奇的Perl-Perl语法(3)

阅读更多

1.1         print基本用法

Perl中有一些预定义的文件句柄,如标准输入STDIN、标准输出STDOUT、和标准错误STDERRprint为输出语句,可以输出到这些文件句柄中。但不输出末尾的回车换行符。

使用语法为:

print 输出句柄 要输出的字符串1, 要输出的字符串2,…, 要输出的字符串n;

如果输出到标准输出句柄中,默认为屏幕,可省略输出设备:

print 要输出的字符串1, 要输出的字符串2,…, 要输出的字符串n;

print  STDOUT要输出的字符串1, 要输出的字符串2,…, 要输出的字符串n;

以上2个语句完成同样的功能。比如:

#perl2-6.pl

print STDOUT "abc","def";

print "12345";

输出结果为:

abcdef12345

 Perl将输出先存在缓冲区,等到缓冲区满后再输出,可使用$|打开和关闭输出缓冲,当$|0值,表示关闭输出缓冲,$|默认为0

 例如:下列代码向STDOUTSTDERR 输出字符串:

print STDOUT "我出错了!\n故障表现为无法连接网站";

print STDERR "\n明白,故障正在处理\n";

我们希望能输出如下结果:

我出错了!

故障表现为无法连接网站

故障处理中

 

但是运行这段代码却输出这样的结果:

我出错了!

 

故障处理中

故障表现为无法连接网站

 

因为STDERR是额外的输出路径,print函数属于行缓冲,遇到换行符后,就输出“\n”之前的“我出错了!”,而“故障表现为无法连接网站”放入缓冲区中,等待下一次的输出。我们关闭输出缓冲,强制把"我出错了!\n故障表现为无法连接网站"立即输出。

$|=1;

print STDOUT "我出错了!\n故障表现为无法连接网站";

print STDERR "\n明白,故障正在处理\n";

运行后得到了正确的输出。

 

 

1.  子程序

PERL的子程序可以出现在程序的任何地方。定义方法为:

sub 子程序名{

   my ($参数1, $参数2, $参数3) = @_;

   语句1

   语句2

   ……

   return (返回值);

}

调用子程序的方法如下:

&子程序名;

以下子程序完成求2数之和的功能:

#perl2-4.pl

sub add{

  my ($x,$y)=@_; #取得子程序的参数

         return($x+$y);

}

print &add(10,5);

输出:15

缺省情况下,子程序中最后一个语句的值将用作返回值,这意味着可以不使用return 返回值。我们把上面的程序改写一下:

#perl2-7.pl

sub add{

  my ($x,$y)=@_; #取得子程序的参数

         $x+$y;

}

print &add(10,5);

虽然没有使用return,但子程序仍然完成了它的功能,输出为:15

1.     基本操作符

1          

2          

3          

4          

5          

5.1         算术操作符

+-* / %  分别表示加、减、乘、除和取余。

比如:

#perl2-8.pl

$res=10+5;

print $res;#

print "#";

$res=10-5;

print $res;#

print "#";

print 10*5;#乘,没有使用变量,直接使用表达式,效果一样。

print "#";

print 10/5;#

print "#";

print 10%3;#10除以3的余数 ,结果为1

print "#";

输出结果为:

15#5#50#2#1#

 

 

5.2         自增与自减

++为自增,--为自减。

:

#perl2-9.pl

$res=10;

$res++;#res=11

print $res;

print "#";

$res--;#$res=11-1=10

print $res;

输出为:

11#10

 

 

 

5.3         比较操作符

1、数字比较

< 小于

= 等于

> 大于

== 等于

<= 小于等于

>= 大于等于

!= 不等于

<=> 比较

2、字符比较

lt 小于

gt 大于

eq 等于

le 小于等于

ge 大于等于

ne 等于

cmp比较

 

 

5.4         字符串操作符

X 使前面的字符串重复

.  连接字符串

 

比如:

#perl2-11.pl

print "xy"."z";#xyz连接成xyz

print "#";

print "xy"x5;#xy重复5

输出:xyz#xyxyxyxyxy

 

 

 

 

 

5.5         逻辑运算符

Perl有以下逻辑运算符

and&& 逻辑与

or||  逻辑或

not ! 逻辑非

xor  异或

 

 

5.6         位操作运算符

 & 按位与

 | 按位或

 ~ 按位非

 ^ 按位异或

<< 左移

>> 右移

 

 

 

1.1         赋值操作符

Perl支持以下赋值操作符:

= **= +=*=&=<<=&&=-=/=|=>>=||=.=%=^=x=

 

 声明:本神奇的Perl系列为刘兴(http://deepfuture.iteye.com/)原创,未经笔者授权,任何人和机构不能转载

 

 

 

 

 

 

 

 

 

1
1
分享到:
评论

相关推荐

    perl-5.16.3-293.el7.x86_64_rpm.zip

    标题中的"perl-5.16.3-293.el7.x86_64_rpm.zip"指的是Perl编程语言的一个特定版本的RPM(Red Hat Package Manager)包,适用于64位的 CentOS 7 操作系统。RPM是一种在类Unix系统中管理软件包的标准格式,它方便了...

    perl-5.26.1.tar.gz

    Perl语法特点: - 采用C风格的语法,易于学习。 - 高度灵活,支持多种编程范式,包括面向过程、函数式和面向对象。 - 正则表达式强大,广泛用于文本处理。 - 自动内存管理,无需手动释放内存。 - 大量现成的CPAN...

    strawberry-perl-5.32.1.1-64bit.7z

    Perl语法受到C、shell脚本和 awk等语言的影响,特别适合处理文本和文件,常用于系统管理、网络编程、网页开发、生物信息学等领域。 描述中提到的"strawberry-perl-5.32.1.1-64bit安装包"是指这个压缩包内包含的是64...

    perl-5.28.zip

    Perl是一种强大的、高级的、通用的脚本编程语言,它在1987年由Larry Wall设计并首次发布。Perl 5.28是这个语言的一...通过深入学习和使用Perl 5.28,你将能够利用其丰富的库和强大的语法,提高你的编程效率和代码质量。

    perl-5.32.1.tar.gz

    Perl的语法特性包括但不限于: - **变量**:Perl支持多种类型的变量,如标量(scalar)、数组(array)、哈希(hash)等,以及引用(reference)机制,允许创建复杂的数据结构。 - **正则表达式**:Perl的正则...

    strawberry-perl-5.10.1.0

    标题中的"strawberry-perl-5.10.1.0"指的是Strawberry Perl的一个特定版本,5.10.1.0。Strawberry Perl是Windows平台上的一种Perl解释器的发行...在使用过程中,熟悉Perl的基本语法和CPAN的使用将对开发者非常有帮助。

    strawberry-perl-5.32.1.1-64bit.msi和openssl-1.1.1-stable-SNAP-202

    在开发过程中,了解Perl的基本语法、模块系统以及如何与系统库(如OpenSSL)交互是非常关键的。同时,掌握OpenSSL的使用和配置也是网络安全和加密编程的基础。通过安装Perl并熟悉OpenSSL,开发者可以构建出安全、...

    perl-5.30.0.tar.gz

    Perl是一种强大的、高级的脚本编程语言,以其灵活性和可扩展性在系统管理、文本处理和Web开发等...此外,不断学习和掌握Perl的语法特性,如正则表达式、文件I/O、对象导向编程等,将有助于提升你在IT领域的专业能力。

    perl.zip、perl-5.16.3-295.el7.x86_64.rpm

    Perl语言语法灵活,支持多种编程范式,包括命令式、函数式和面向对象编程。它的名字是“Practical Extraction and Reporting Language”的首字母缩写,反映了其在数据提取和报告生成上的优势。 在CentOS 7.6这样的...

    ActivePerl-5.14.0.1400

    1. 兼容性:它与标准Perl语法和库兼容,使开发者能在任何支持Perl的平台上编写代码。 2. 预编译模块:ActivePerl包含了大量预编译的CPAN(Comprehensive Perl Archive Network)模块,简化了模块的安装和使用。 3. ...

    ActivePerl-5.24.3.2404-x86_64-linux-glibc-2.15-404865.tar.gz

    标题中的"ActivePerl-5.24.3.2404-x86_64-linux-glibc-2.15-404865.tar.gz"表明这是一个基于Perl编程语言的软件发行版,具体来说是ActivePerl的一个版本。ActivePerl是由ActiveState公司维护的Perl解释器,它为...

    ActivePerl-5.26.1.2601-MSWin32-x64-404865.exe

    3. **模块化**:Perl拥有丰富的CPAN(Comprehensive Perl Archive Network)库,其中包含数万种预编译的模块,涵盖了从网络编程到图形用户界面的各种功能。 4. **跨平台**:Perl可以在多种操作系统上运行,包括...

    perl-5.28.0

    2. **语法改进**:Perl 5.28.0引入了新的语法元素,如`given`和`when`,用于简化复杂的条件语句。此外,还增强了`say`函数,使得在输出时自动添加换行符,提高了代码的可读性。 3. **模块更新**:Perl的核心模块...

    perl-5.24.1.tar.gz

    Perl的语法有时被戏称为“line noise”,因为它包含了很多不常见的字符和缩写,这为程序员提供了高度的表达性,但也使得学习曲线较为陡峭。 在Perl 5.24.1中,可能包含了一些改进,比如对Unicode字符集的支持更加...

    ActivePerl-5.8.8.822-MSWin32-x86-280952

    这些错误可能是由于语法差异、库不兼容或者特定版本的Perl实现中未包含某些功能导致的。因此,确保使用正确的Perl版本对于编译过程至关重要。 标签"ActivePerl-5.8.8.822"进一步强调了这个话题的核心,即关注的是...

    ActivePerl-5.20.1.2000-MSWin32-x64-298557.msi

    Perl的语法灵活且强大,借鉴了C、sed、awk等语言的特性,因此被称为“实用提取和报告语言”(Practical Extraction and Reporting Language)。 ActivePerl的5.20.1版本意味着这是基于Perl的5.20主线版本,这个版本...

    ActivePerl-5.24.1.2402-MSWin32-x64-401627

    3. **优化的内存管理**:提升了内存使用效率,减少了不必要的内存分配。 4. **模块更新**:包含了许多Perl模块的最新版本,这些模块可用于加密、网络通信、文件操作等各种用途。 描述中提到的"openssl等的perl程序...

    ActivePerl-5.10.0.1005-MSWin32-x86-290470.zip

    它的语法灵活且强大,同时借鉴了C、sed、awk、shell脚本等多种语言的特点。 ActivePerl是Perl的一个流行实现,特别是在Windows平台上。它包含了Perl解释器、核心模块以及一些额外的工具,使得在Windows上安装和使用...

Global site tag (gtag.js) - Google Analytics