文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>[原创]大家一起学习Perl(三)

[原创]大家一起学习Perl(三)

时间:2006-12-29  来源:剑胆琴心

#!/usr/bin/perl


#变量初始化相关

#-----------------------------

# 如果$b为真则用$b,否则用$c

$a = $b || $c;

# 将$y赋给$x,除非$x已经为真

$x ||= $y
#-----------------------------

# 如果$b已经定义则使用$b,否则使用 $c

$a = defined($b) ? $b : $c;
#-----------------------------

#如果$bar已经定义则使用$bar,否则使用 "DEFAULT VALUE"

$foo = $bar || "DEFAULT VALUE";
#-----------------------------

#从这句开始的下面4个语句同义,都是将命令行的第一个参数(如果存在的话)赋给$dir;否则将"/tmp"赋给$dir

#@ARGV--全局变量(数组),存储命令行的输入;

#如:#perl test.pl /root/myperl data.txt

#则 $ARGV[0]为"/root/myperl",$ARGV[1]为 "data.txt"

$dir = shift(@ARGV) || "/tmp";
#-----------------------------

$dir = $ARGV[0] || "/tmp";
#-----------------------------

$dir = defined($ARGV[0]) ? shift(@ARGV) : "/tmp";
#-----------------------------

$dir = @ARGV ? $ARGV[0] : "/tmp";#用了三目运算符(?:),用过C的人都会

#-----------------------------


$count{ $shell || "/bin/sh" }++;
#-----------------------------

# 输出 Unix 系统的用户,结果在Windows上的getlogin()函数也能用,:-)

$user = $ENV{USER}
     || $ENV{LOGNAME}
     || getlogin()
     || (getpwuid($<))[0]
     || "Unknown uid number $<";

#-----------------------------

@a = @b unless @a; # 当且仅当@a为空时复制@b到@a

@a = @b ? @b : @c; # 如果@b非空,则复制到@a, 否则@c

#-----------------------------


#下面感受一下Perl列表(list)数据结构的强大。

#在C语言中我们交换两个变量的值的时候我们会怎么做?

#可能需要一个临时变量temp做临时存储。

#下面看一下Perl是怎么做的吧。

#-----------------------------

#Perl只需要这样一句话即可交换两个变量的 值

#($VAR1, $VAR2) = ($VAR2, $VAR1);

#-----------------------------

$temp = $a;
$a = $b;
$b = $temp;
#-----------------------------

$a = "alpha";
$b = "omega";
($a, $b) = ($b, $a); # 交换$a和$b的值

#-----------------------------

($alpha, $beta, $production) = qw(January March August);
# move beta to alpha,

# move production to beta,

# move alpha to production

($alpha, $beta, $production) = ($beta, $production, $alpha);
#这个就不作解释了,很容易理解

#-----------------------------

相关阅读 更多 +
排行榜 更多 +
我要当超人

我要当超人

休闲益智 下载
幸存者的命运

幸存者的命运

飞行射击 下载
精英战区3d

精英战区3d

飞行射击 下载