以下代碼不打印'HASH'類型。這段代碼有什麼問題?Perl ref()不打印'HASH'類型
#! /usr/bin/perl
$prices{'pizza'} = 12.00;
$prices{'coke'} = 1.25;
$prices{'sandwich'} = 3.00;
print ref($prices);
以下代碼不打印'HASH'類型。這段代碼有什麼問題?Perl ref()不打印'HASH'類型
#! /usr/bin/perl
$prices{'pizza'} = 12.00;
$prices{'coke'} = 1.25;
$prices{'sandwich'} = 3.00;
print ref($prices);
首先,你應該把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);
從正式的角度來看,答案可能更短:
也許,你的想法是寫
$prices->{'pizza'} = 12.00; $prices->{'coke'} = 1.25; $prices->{'sandwich'} = 3.00; print ref($prices);