1.1 print基本用法
Perl中有一些预定义的文件句柄,如标准输入STDIN、标准输出STDOUT、和标准错误STDERR。print为输出语句,可以输出到这些文件句柄中。但不输出末尾的回车换行符。
使用语法为:
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。
例如:下列代码向STDOUT和STDERR 输出字符串:
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. 基本操作符
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";#将xy和z连接成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/)原创,未经笔者授权,任何人和机构不能转载
分享到:
相关推荐
Perl语法检查 要求 perl(用于语法突出显示) 珍珠棉(用于棉绒) 扩展设置 设置 默认 描述 perl-toolbox.temporaryPath null 写入临时皮棉和语法文件的路径。 默认为操作系统特定的tmp路径 perl-toolbox.syntax....
perl-tcl-ptk:Tcl :: pTk-与PerlTk兼容的语法与TclTk的接口
这是 Perl 5 和 Perl 6 的所有各种与 Perl 相关的语法和帮助文件的集合。 安装 您可以使用安装 vim-perl 和 git 子模块 它们都经过测试和工作:请阅读相关站点上的相关文档。 传统方法是安装,只需执行“make ...
perl实现中文分词 先双向扫描法找出歧义段 再n元语法概率模型消歧 1998年人民日报语料下F1值达94%
PERL_基本语法,针对PERL刚刚入门初学者,可以加深对PERL的印象
这些在执行正规表达式模式匹配时用与Perl 5同样的语法和语义是很有用的。Boost太庞大了,使用boost regex后,程序的编译速度明显变慢。测试了一下,同样一个程序,使用boost::regex编译时需要3秒,而使用pcre不到1秒...
Perl的简单语法 Perl的简单语法 Perl的简单语法 Perl的简单语法 Perl的简单语法 Perl的简单语法 Perl的简单语法
perl基本语法 讲述数据类型 控制叙述 副程式 I/O和档案处理等
perl6-fortran语法:用于解析FORTRAN源代码的Perl6语法
Atom-atom-language-perl6.zip,Atom/Github Perl 6 Syntax Highlighting Support »ö«Atom Perl 6支持-官方版!,atom是一个用web技术构建的开源文本编辑器。
perl基本语法,适合初学perl的人员。
很好的东西,可以让大家熟悉perl程序的基本语法,值得大家下载。
perl语法资源的引用,我都自学的,现在拿出来跟大家分享
包含了全部的基本Perl语法,对初学Perl者很有帮助
Perl的简单语法(与C语言语法的异同)
Perl 语言编程,详细讲解了perl的语法及技巧
Perl Moose Extension for VS代码 语法突出显示了对Visual Studio Code的支持 产品特点 此扩展包括对Moose及其最小变体( Mouse和Moo )的支持。 当前包括以下类别的语法突出显示: 驼鹿 驼鹿::已弃用 驼鹿::出口...
神奇的perl 最佳PERL入门读物,最好的perl入门读物,基础的语法以及perl思想,以及神奇的正则用法。
适合想学习Perl语言的人;语法参考;
Perl 一般被称为“实用报表提取语言”(Practical Extraction and Report Language),虽然有时被称做“病态折中垃圾列表器” (Pathologically Eclectic Rubbish ...本doc提供了Perl的简单语法(与C语言语法的异同)