2015-12-03 53 views
-1

我只是想知道根據下面的例子,Perl中字符串「name」的含義是什麼意思?這是我的第一個問題,請溫和,我很新的perl在字符串「名稱」之間的大括號意味着在Perl?

my $pool_name = $result->get->pool_attr("name")->{"name"}; 
+3

如果你是「perl的新手」,你可以通過閱讀[perl tutorials](http://perldoc.perl.org/index-tutorials.html)或[perl books](https: //www.perl.org/books/library.html)。 –

回答

-1

$ pool_name是結果將被存儲的地方。

$ result是保存對象的變量。

- > get是對象$ result的操作。

- > pool_attr(「name」)獲取 - > get操作的散列項的值。

- > {「名」}訪問名爲「名」的值相關聯的匿名散列值 - > pool_attr(「名稱」)

2

具體回答這個問題,什麼是大括號。我會在這裏說他們是散列引用的語法。

沒有太多對這樣一個小片斷解釋,但想到這一點:

%hash = (
    'name'    => "Harsha", 
    'designation'  => "Manager" 
); 

$hash_ref = \%hash; 

當我們需要引用特定的元素,我們可以使用 - >運算符。

my $name = $hash_ref->{name}; 

這是取自稍作修改的例子 - http://www.thegeekstuff.com/2010/06/perl-hash-reference/

0

Perl是有點簡潔的這種方式。有兩個概念在這裏瞭解: -

  1. Perl的對象訪問
  2. 的Perl引用訪問

Java一樣,我們可以在Perl引用。如果你來自C背景,可以把它們看作C中的指針。現在,如果我們想使用引用訪問任何東西,我們使用「 - >」符號。對此有更多的概念,比如祝福等,但我們不會進入。但重要的是Perl對象也像HASH。因此,所有對perl對象成員等的訪問都以類似於HASH(HASH引用,而不是哈希對象)的方式完成。

所以,我們有一個對象$結果。 $ result-> get調用Object上的Get方法。此方法向您返回另一個對象。我們稱之爲溫度。

現在,再次在這個對象上,我們調用了一個帶有函數參數「name」的成員函數pool_attr。這個函數最終返回給你。

請記住,Perl哈希行爲類似於perl對象,所以我們使用類似的符號訪問「名稱」鍵。

您可以使用print Data :: Dumper :: Dumper函數,它會告訴您更多關於數據結構的信息。但是請注意,perl對象有點破解,所以你可能會看到Data :: Dumper :: Dumper有很多不必要的混亂。

相關問題