日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

perl数组硬引用_perl引用和数组 - SibylY的个人空间 - OSCHINA - 中文开源技术交流社区...

發布時間:2025/4/5 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 perl数组硬引用_perl引用和数组 - SibylY的个人空间 - OSCHINA - 中文开源技术交流社区... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、引用

常見數據類型的引用定義:

數據類型 ? ? ? ? ? 定義????? 舉例

標量變量?????????? \$Var????????????????????????????? $Pointer? =? \$Var

數組 ? ? ? ? ? ? ? ? \@Array????????????????????????? $Pointer? =? \@Array

哈希變量?????????? \%Hash?????????????????????????? $Pointer? =? \%Hash

文件句柄?????????? \*FILEHANDLE??????????????? $Pointer? =? \

常量 ? ? ? ? ? ? ? ? \常量?????????????????????????????? $Pointer? =? \3.1415926

子程序????????????? \&SubRoutine????????????????? $Pointer? =? \&SubRoutine

匿名數組 ? ? ? ? ? ?[ LIST ]??????????????????????????? $Pointer? =? [ “Smith”,“Jack”,“Jimmy”,“ZhaZha”]

匿名哈希變量 ? ? { Key=>Value }??????????????? $Pointer? = { Key1=>Value1,Key2=>Value2}

匿名子程序 ? ? ? ?sub {}?????????????????????????????? $Pointer? =? sub { printf( “Hello,Perl World\n”);}

對象引用?????????? bless? $self;

reference是另一個變量的地址。reference可以指向array,hash,或perl代碼段。reference使perl代碼運行更快。

二、數組的引用

1)array的reference

$array_ref = \@array;

print $array_ref;#顯示如下ARRAY(0x1a2b3c);

sub add_numbers{

my $array_ref= shift;

}

@numbers = (11,2,3,45);

$array_ref = add_numbers(\@numbers);

以上代碼中,需要對array的reference進行dereference,然后才可以使用array中的元素。

以下是傳遞array的reference到subroutine的優點:

*如果array傳遞給subroutine,perl將整個array重新copy到@_中,當array比較大時,將非常低效;

*當我們需要在subroutine中修改原來的array時,需要傳遞array的reference;

*reference其實是構造復雜數據結構的本質。

2)array的reference的dereference

在subroutine中,我們可以使用@{$array_ref}來dereference;取得第一個元素${$array_ref}[0];

如果只是dereference一個簡單的scalar變量,可以忽略括號,如下:

@$array_ref #same as @{$array_ref}

$$array_ref #same as ${$array_ref}

三、hash的reference和dereference

%author = (

'name'=>'Harsha',

'designation' => 'Manager'

);

$hash_ref = \%author;

$name = ${$hash_ref}{name}; #same as my $name = $hash_ref->{name}

my @keys = keys%{$hash_ref}; #same as my @keys = keys%author;

my $hash_ref = {

'name' =>"coco",

'designation' => 'Manager'

};#匿名引用

總結

以上是生活随笔為你收集整理的perl数组硬引用_perl引用和数组 - SibylY的个人空间 - OSCHINA - 中文开源技术交流社区...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。