perl 中的or与||的区别_perl

来看看下面的代码会输出什么?

复制代码 代码如下:

my $a = 0;
$a = $a or 1;
print $a, "\n";
$a = $a || 1;
print $a, "\n";

输出:
0
1
为什么呢?因为||, =, or 这三者优先级从左至右逐渐降低。
所以,这样写可以:
chomp(my $filename = shift( @ARGV ) || <STDIN>);

这样则不行:
chomp(my $filename = shift( @ARGV ) or <STDIN>);
会提示如下错误:
Can't modify logical or (||) in chomp

时间: 2024-10-12 00:33:34

perl 中的or与||的区别_perl的相关文章

Perl中chomp和chop的区别介绍_perl

chomp是用来删除换行符. 复制代码 代码如下: #!/usr/bin/perl $c="abcde"; chomp($c); print "$c\n"; [root@ak]# perl a.pl abcde chop是用来删除最后一个字符. 复制代码 代码如下: #!/usr/bin/perl $c="abcde"; chop($c); print "$c\n"; [root@ak]# perl a.pl abcd cho

perl中my和our的区别分析_perl

perl中our的用法require 5.006当版本号小于 5.006 的时候,会返回失败,从而导致模块加载失败.所以它的作用就是保证模块调用环境的 Perl 版本. our 和 my 一样,都是对变量的声明,不过 our 声明的是包全局变量,而 my 声明的是词法变量. 不过,经过 our 声明的变量,它会变得像一个词法变量一样,其实这也是 our 存在的目的:用来欺骗 strict pragma,使 strict 以为它是一个词法变量,其实却不是. 有一个简单的办法可以理解 our:1,你

perl中my与our的区别介绍_perl

先来看下our的用法. require 5.006当版本号小于 5.006 的时候,会返回失败,从而导致模块加载失败.所以它的作用就是保证模块调用环境的 Perl 版本. our 和 my 一样,都是对变量的声明,不过 our 声明的是包全局变量,而 my 声明的是词法变量. 不过,经过 our 声明的变量,它会变得像一个词法变量一样,其实这也是 our 存在的目的:用来欺骗 strict pragma,使 strict 以为它是一个词法变量,其实却不是. 有一个简单的办法可以理解 our:1,

Perl中的文件读写学习笔记_perl

一.打开.关闭文件 语法为open (filevar, filename),其中filevar为文件句柄,或者说是程序中用来代表某文件的代号,filename为文件名,其路径可为相对路径,亦可为绝对路径. 复制代码 代码如下:  open(FILE1,"file1");  open(FILE1, "/u/jqpublic/file1"); 打开文件时必须决定访问模式,在PERL中有三种访问模式:读.写和添加.后两种模式的区别在于写模式将原文件覆盖,原有内容丢失,形式

Perl中的单行注释和多行注释语法_perl

同其他大多数编程语言一样,Perl中的单行注释也是#开头,例如: 复制代码 代码如下: #print "Hello,World!"; 但多行注释,不同的语言有不同的注释方式,比如说:Java,C/C++: 复制代码 代码如下: /*  *注释若干行  *注释若干行  *注释若干行 */ Python: 复制代码 代码如下: """  用三个双引号,多行注释  用三个双引号,多行注释  用三个双引号,多行注释 """ '''  

perl中的$a和$b介绍_perl

即使打开了strict和warnings选项也无妨,下面代码并无错误和警告. 复制代码 代码如下: #!/usr/bin/perluse strict;use warnings;sub test {    $a = 1;    $b = 2;    print $a, "\n";    print $b, "\n";}test();1; 下面是perl文档中对这两个变量的解释: perldoc perlvar$a$b Special package variable

perl中的范围声明our-my-local介绍_perl

老实说,这个东西有点折腾人,主要是书上的表述很晦涩,其实搞懂不难.   our,"把名字限于某个范围",其实就是明确声明一个"全局变量",虽然是在某个模块或者函数里面定义的,外面的也可以访问,如果已经声明过了,再次用"our",表示此处用的是全局的那个,不是同名的私有或者局部变量 复制代码 代码如下: our $PROGRAM_NAME = "waiter"; { my  $PROGRAM_NAME = "somet

Perl中使用MIME::Lite发送邮件实例_perl

有时候我们在部署脚本的时候,我们想知道,我们的程序执行的怎么样了,想得到执行的结果,这样我们也能放心很多是吧,那么在程序执行成功或失败的时候能够给我没发个邮件很是很不错的. 其实利用perl发邮件的方法有很多种,包括你在cpan上搜索mail关键字是一大堆,经过实践,MIME::Lite用来发邮件还是很合适的,最不可思议的是它可以帮你轻松的发送带有附件的邮件哦. 下面我们就以MIME::Lite发邮件为例: 在cpan上面有关于它的详细的用法(http://search.cpan.org/~rj

perl中的字符串操作函数chomp与chop介绍_perl

chomp与chop都是用于去除字符串变量尾部的字符,但它们有各自的区别. chomp函数对变量起作用,而此变量含有字符串.如果字符串结尾有换行符,chomp可以去掉它.这基本上就是它能完成的所有功能,如下例: 复制代码 代码如下: $text="alineoftext\n      "; #也可以由<STDIN>输入 chomp($text);    #去掉换行符(\n). 它非常有用,基本上你的每一个程序都会用到它.如你将知道,这是将字符串末尾换行符去掉的最好方法.基于