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

神奇的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
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics