次のコードは '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コードのためにそれを行います)。 %prices
ハッシュと$prices
スカラー:
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.
は、それは何を意味することは、変数を区切るために使用しようとしたことである。そうしたら、次のように表示されます。 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);