2016-04-23 61 views

回答

9

首先,你應該把use strict;use warnings;在腳本的頂部(併爲所有未來的Perl代碼以及)。這樣做之後,你會看到以下內容:

Global symbol "%prices" requires explicit package name at ./a.pl line 4. 
Global symbol "%prices" requires explicit package name at ./a.pl line 5. 
Global symbol "%prices" requires explicit package name at ./a.pl line 6. 
Global symbol "$prices" requires explicit package name at ./a.pl line 7. 
Execution of ./a.pl aborted due to compilation errors. 

它的意思是,你試圖用分離變量:一個%prices哈希和$prices標。

固定使用my %prices;變量聲明後,你可以得到一個關於你%prices哈希如下:

my $prices_ref = \%prices; 
print ref($prices_ref); 
0

從正式的角度來看,答案可能更短:

  1. REF($價格)如果$ prices的值是對另一個變量的引用,則返回1,否則返回false。
  2. ref($ prices)是第一次使用未聲明的變量$ prices(前面的行代表另一個未聲明的變量 - hash%價格)。
  3. $ prices的價格是undef,ref($ prices)是一個空字符串。
  4. 也許,你的想法是寫

    $prices->{'pizza'} = 12.00; $prices->{'coke'} = 1.25; $prices->{'sandwich'} = 3.00; print ref($prices);