日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2025/4/5 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 - 中文开源技术交流社区...的全部內容,希望文章能夠幫你解決所遇到的問題。

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