1. 程式人生 > >學習筆記 Perl ->符號用法的兩種解釋

學習筆記 Perl ->符號用法的兩種解釋

col debug blog 列表 cnblogs .com password pop 用法

Perl ->符號的主要用法解釋

Perl ->符號第一種用法,就是解引用。

根據->後面跟的符號的不同,解不同類型的引用,->[]表示解數組引用,->{}表示解散列引用,->()表示解子程序引用。
 例子:
$arr_ref=\@array;
 $arr_ref->[0]訪問數組@array的第一個元素。
$hash_ref=\%hash;
 $hash_ref->{foo}訪問%hash的foo分量
$sub_ref=\&test;
 $sub_ref->(1,2,3)使用參數列表(1,2,3)來調用&test這個子程序。

Perl 
->符號第二種用法,就是調用類或者對象的方法。 格式: $obj->method(); 或者 ClassName->method(); 例如: $pop3->login($username,$password); my$ftp=Net::FTP->new("some.host.name",Debug=>0); Perl ->符號這兩種用法略有不同,但是總的來說,符合以下規則: 假設->的左操作數(就是左邊那個值,如$pop3和Net::FTP)是$left,右操作數(就是右邊那個值,如login和new)是$right,那麽->的運算規則就是:
if(ref$left有效){#也就是說$left是個引用,而不是個裸字 $ClassName=ref$left;#取引用的類型,當作類名稱 } else{ $ClassName=$left;#直接把裸字當作類名稱 } 然後調用: &{$ClassName::$right}($left,原參數列表) 也就是說把類名稱和右操作數拼在一起,當作子程序名稱(註),並把左操作數當作第一個參數。 註:Perl解釋器要做的工作其實要比這復雜,它還要考慮到繼承的問題。
http://developer.51cto.com/art/201007/212436.htm

學習筆記 Perl ->符號用法的兩種解釋