微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Perl引用,解引用的对比总结转

Perl引用,解引用的对比总结

 

 

标量

数组

散列

函数

定义符号

$

@

%

&

定义

$test

@test

%test

Sub test

使用

$test = ‘a’

@test = (1,2,3)

%test = (‘a’=>1,’b’=>2)

Sub test{ code }

元素/使用

-

$test[n]

$test{key}

&test(param)

元素符号

-

[..]

{..}

(..)

引用

/$test

/@test

/%test

/&test

*引用1

*test{SCALAR}

*test{ARRAY}

*test{HASH}

*test{CODE}

解引用

符号解

${/$test}

@{/@test}

%{/%test}

&{/&test}

箭头解

-

$test->[n]

$test->{key}

$test->(param)

$

-

${/@test}[n]

${/%test}{key}

-

匿名创建

-

 $test=[1,3,4]

$test={‘a’=>1,’b’=>2}

$test=sub{ code }

 

1. 传递文件句柄时,*号作为文件句柄的定义符号,例如

 

open(MYFILE,">test.123");

print MYFILE 123;splutter(*MYFILE);

#   /*MYFILE = *MYFILE

close(MYFILE);sub splutter {

my $fh = shift$fh "her um well a hmmm/n"}


2. 隐藏的箭头: 每一对花括号或方括号之间,隐藏着一个 -> ,包括 {}[] 或者 []{},下面的例子
 
@H_502_747@#!perl -w
@H_502_747@use @H_502_747@strict;
@H_502_747@my @H_502_747@$ref_to_AoA = [
    [ @H_502_747@"fred"@H_502_747@, @H_502_747@"barney"@H_502_747@, @H_502_747@"pebbles"@H_502_747@, @H_502_747@"bamm bamm"@H_502_747@, @H_502_747@"dino"@H_502_747@],
    [ @H_502_747@"homer"@H_502_747@, @H_502_747@"bart"@H_502_747@, @H_502_747@"marge"@H_502_747@, @H_502_747@"maggie"@H_502_747@],
    [ @H_502_747@"george"@H_502_747@, @H_502_747@"jane"@H_502_747@, @H_502_747@"elroy"@H_502_747@, @H_502_747@"judy"@H_502_747@],
];
@H_502_747@my @H_502_747@@Aoa = (
      [@H_502_747@"fred"@H_502_747@, @H_502_747@"barney"@H_502_747@],
      [@H_502_747@"george"@H_502_747@, @H_502_747@"elroy"@H_502_747@],
      [@H_502_747@"homer"@H_502_747@, @H_502_747@"bart"@H_502_747@],
      {@H_502_747@"test"@H_502_747@=>@H_502_747@"aaa"@H_502_747@,@H_502_747@"test2"@H_502_747@=>@H_502_747@"bbb"@H_502_747@}
);
@H_502_747@print @H_502_747@$ref_to_AoA->[@H_502_747@2@H_502_747@][@H_502_747@3@H_502_747@]; # 等价于 $ref_to_AoA->[2]->[3];
@H_502_747@print @H_502_747@$Aoa[@H_502_747@3@H_502_747@]{@H_502_747@"test"@H_502_747@}; # 等价于 $Aoa[3]->{"test"}
 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐