sub function{
my $storedata=shift;
my $storenameandaddress=$storedata->{$storeid}->{name}
."_".$storedata->{$storeid}->{location}->{address}
."_".$storedata->{$storeid}->{location}->{city}
."_".$storedata->{$storeid}->{location}->{state}
."_".$storedata->{$storeid}->{location}{country};}
我的代码如上所示。 它给我的错误信息:
Using a hash as a reference is deprecated at main.pl line 141.
然而,该功能仍是可运行的。 而所有的休息似乎罚款。 那么,什么是这个错误在说什么? 我应该如何解决? 谢谢。
你的代码张贴不给的警告。 该形式的代码
%foo->{bar}
给出了警告。 它给出了警告,因为它用作
$foo->{bar}
即使它不应该。
$ perl -wE'my %h = ( foo => 123 ); say %h->{foo};'
Using a hash as a reference is deprecated at -e line 1.
123
$ perl -Mdiagnostics -wE'my %h = ( foo => 123 ); say %h->{foo};'
Using a hash as a reference is deprecated at -e line 1 (#1)
(D deprecated) You tried to use a hash as a reference, as in
%foo->{"bar"} or %$ref->{"hello"}. Versions of perl <= 5.6.1
used to allow this syntax, but shouldn't have. It is now deprecated, and will
be removed in a future version.
123
$ perl -wE'my %h = ( foo => 123 ); say $h->{foo};'
123