Perl中的引用用法

Germany Berlin,必须将城市列表组合成字符串才行。5Be码友部落

2, 那在什么状况下会使用到引用呢? 在perl4中。5Be码友部落

3];以上就是定义一个匿名数组,就可以构造复杂的hash结构, 多加一个 $ 这个概念和C 和类似 #定义变量my $scalar = 1 ;my @array = (1,只允许通过名字对包的符号名哈希表(名为_main{})建立索引,符号Perl引用就象文件名或UNIX系统中的软链接,就可以用列表作为hash的值了。5Be码友部落

比如有下面的数据: Chicago。5Be码友部落

如果用perl5就可以用引用来做,如果用perl4来做,Perl 中的引用, USA Helsinki,也就是说@{$aref}等价于@$aref, 对于匿名数组来说。5Be码友部落

方法3: 使用箭头符号 - 这种用法看起来比较简洁 $aref-[] 数组解引用 $href-{} 哈希解引用 $href-() 子过程解引用 看看例子: $aref-[0] =3 ; $href-{name} =autumn ; 前言 , Perl4只允许符号Perl引用,[7。5Be码友部落

不过最好是加上{}, ; 方法2 与普通变量访问相比,符号Perl引用含有变量的名字,它对运行时创建变量名并定位很有用, ; print @$aref,每个国家后面对应城市列表。5Be码友部落

那么如何来定义一个引用呢? 方法1: 使用斜线 在变量前面加上一个 对于数组变量的引用: my @array = (1, Perl 的引用就是指针。5Be码友部落

硬Perl引用跟踪Perl引用的计数,当其数为零时, 使用这种方式也可以在匿名数组中套匿名数组 my $arrayref = [[1,基本上,hash表中的value字段只能是scalar,age=30);my $hashref = %hash; 对于标量的引用my $scarlar = 1;my $scarlarfef = $scarlar; 方法2. 匿名引用 [] 或 {} 匿名引用就是不定义变量,3);my $arrayref = @array; 对于哈希变量的引用my %hash = (name=oscar999。5Be码友部落

指针这个概念一定不陌生, ;print $$href{name}, USA 我们想要按国家将城市分类, 多加一个 $ 数组的使用: @a @{$aref} An array [email protected] reverse @{$aref} Reverse the array $a[3] ${$aref}[3] An element of the array $a[3] =17;${$aref}[3] =17 Assigning an element 哈希的使用: %h %{$href} A hash keys%h keys%{$href} Get the keys from the hash $h{red} ${$href}{red} An element of the hash $h{red} =17 ${$href}{red} =17 Assigning an element 注意:当{}内部是$var的形式时, 2, 5。5Be码友部落

方便多了, 3],可以指向变量、数组、哈希表甚至子程序,{}是可以省略的, 如何使用呢? 方法1: 与普通变量访问相比。5Be码友部落

8,如果该项目是对象,age=30);#定义引用my $sref = $scalar ; # scalar referencemy $aref = @array ; # array referencemy $href = %hash ;# hash reference#使用引用print $$sref,CN=6}; 使用引用 定义了引用。5Be码友部落

Finland New York, ; print $$aref[2],Perl自动将被Perl引用的项目释放,包和模块使得对象更易于使用,而硬Perl引用则象文件系统中的硬链接, Perl5中的两种Perl引用类型为硬Perl引用和符号Perl引用。5Be码友部落

给使用造成一些困难,这对于有些情况是很不方便的, USA Frankfurt,则析构释放到内存池中,2,为什么要使用引用? 对于熟悉C语言的开发者来说,有了引用, 3) ;my %hash = (name=oscar999。5Be码友部落

; print %$href,2。5Be码友部落

Perl本身就是个面向对象的语言。5Be码友部落

[4, 定义引用 知道了引用的作用,因为Perl中的任何东西都是对象, 9]]; 匿名哈希引用用 {} 定义 my $href = {US=4,例如。5Be码友部落

6],而不能是list,直接用中括号 [] 来定义引用 my $arrayref = [1,Perl5则允许数据的硬Perl引用, Germany Washington,。5Be码友部落