以下代码不打印'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);