高级编程

$a[$i]   @a[$i]


子函数:

[oracle@jhoa 1]$ cat 2.pl 
sub hi {
my $name = shift;
return "hi,$name
";
}


print &hi("Fred");
[oracle@jhoa 1]$ perl 2.pl 
hi,Fred

[oracle@jhoa 1]$ cat 3.pl 
while ( my $file = glob('*')) {#
 print "$file
";
}
[oracle@jhoa 1]$ perl 3.pl 
1.pl
2.pl
3.pl
a.txt

unless 条件为假才执行:

[oracle@jhoa 1]$ cat a1.pl 
$var="a1";
unless ($var eq "a1"){
print "11111
";
}else{
print "22222
";
}

[oracle@jhoa 1]$ perl a1.pl 
22222
-----------------------------
[oracle@jhoa 1]$ cat a1.pl 
$var="a1";
unless ($var eq "a2"){
print "11111
";
}else{
print "22222
";
}
[oracle@jhoa 1]$ perl a1.pl 
11111

[oracle@jhoa 1]$ cat a2.pl 
@cats = qw(a b c d e f g);
$cats[1] = undef;
print "@cats
";
foreach my $cat (@cats){
next unless defined $cat;
print "I Have a cat named $cat
";
}

[oracle@jhoa 1]$ perl a2.pl 
a  c d e f g
I Have a cat named a
I Have a cat named c
I Have a cat named d
I Have a cat named e
I Have a cat named f
I Have a cat named g




--------------------------------------------------
defined 测试该元素的值

用exists 函数测试是否存在该键名

[oracle@jhoa 1]$ cat a3.pl 
my %hash;
if ( $hash{'foo'}){print "1111
"};
if (defined  $hash{'foo'}){print "2222
"};
if (exists  $hash{'foo'}){print "3333
"};
[oracle@jhoa 1]$ perl a3.pl 
[oracle@jhoa 1]$ 

全部为假:

[oracle@jhoa 1]$ cat a3.pl  
my %hash;
$hash{'foo'}= undef;
if ( $hash{'foo'}){print "1111
"};
if (defined  $hash{'foo'}){print "2222
"};
if (exists  $hash{'foo'}){print "3333
"}; 为真

[oracle@jhoa 1]$ perl a3.pl 
3333

原文地址:https://www.cnblogs.com/hzcya1995/p/13351957.html