国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Perl > 正文

perl引用的相關知識分享

2020-06-04 20:29:45
字體:
來源:轉載
供稿:網友

為何使用引用?

在perl4中,hash表中的value字段只能是scalar,而不能是list,這對于有些情況是很不方便的,比如有下面的數據:
Chicago, USA
Frankfurt, Germany
Berlin, Germany
Washington, USA
Helsinki, Finland
New York, USA

我們想要按國家將城市分類,每個國家后面對應城市列表,如果用perl4來做,必須將城市列表組合成字符串才行,如果用perl5就可以用引用來做,有了引用,就可以構造復雜的hash結構,就可以用列表作為hash的值了。

如何定義引用

方法一 使用斜線/

定義變量的時候,在變量名前面加個/,就得到了這個變量的一個引用,比如
代碼如下:
# 數組的引用
my@array= (1,2,3) ;
my$aref=/@array ;
#哈希的引用
my%hash= ("name"=>"zdd","age"=>30,"gender"=>"male") ;
my$href=/%hash ;
#標量的引用
my$scalar=1 ;
my$sref=/$scalar ;

方法二 匿名引用

方法一不是很常用,最常用的還是匿名引用,方法如下
匿名數組引用-用[]定義
$aref= [ 1,"foo",undef,13 ];

匿名數組的元素仍然可以是匿名數組,所以我們可以用這種方法構造數組的數組,可以構造任意維度的數組。
my $aref = [
        [1, 2, 3],
        [4, 5, 6],
        [7, 8, 9],
]

匿名哈希引用-用{}定義

$href= { APR =>4, AUG =>8 };

使用引用

定義了引用之后,可以使用不同的方法來訪問引用,這里主要有三種方法。記憶這三種方法有個訣竅,將他們與普通的變量訪問作比較即可。

方法一

與普通變量的訪問方法相比,假設原來的變量名是name,則此方法在所有name出現的地方用$name代替,如下:

代碼如下:
my $scalar = 1 ;
my @array = (1, 2, 3) ;
my %hash = ('zdd' => 30, 'autumn' => 27) ;
my $sref = /$scalar ;   # scalar reference
my $aref = /@array ;    # array reference
my $href = /%hash ;     # hash reference

# 方法一
代碼如下:
print $$sref, "/n" ;  # 用$sref代替sref
print @$aref, "/n" ;   # 用$aref代替aref
print %$href, "/n" ;   # 用$href代替href
print $$aref[2], "/n" ;
print $$href{'zdd'}, "/n" ;

#方法二
代碼如下:
#與普通變量的訪問方法相比,假設變量原來的名字是name,則現在用{$name}來代替name。
@a        @{$aref}         An array
   reverse@a  reverse @{$aref}    Reverse the array
   $a[3]      ${$aref}[3]       An element of the array
   $a[3] =17;   ${$aref}[3] =17    Assigning an element

#同理,哈希引用的使用方法如下。
代碼如下:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 油尖旺区| 石阡县| 西盟| 马龙县| 绵竹市| 澄迈县| 岳西县| 大厂| 许昌市| 乌鲁木齐市| 江源县| 商洛市| 江永县| 宜城市| 来宾市| 兴城市| 抚宁县| 合阳县| 资溪县| 哈巴河县| 屏山县| 葵青区| 隆化县| 会宁县| 沧源| 清涧县| 河西区| 侯马市| 镇江市| 景德镇市| 大埔区| 龙门县| 望城县| 屏南县| 玉山县| 六盘水市| 杨浦区| 梁河县| 南通市| 梁平县| 虎林市|