This post has been a godsend, even four years on, so a big thank you to Norman.
Heart Internet have just upgraded Perl, thus putting my website out of action. Having changed the four pieces of code as suggested in this post, customers can now purchase again.
However, search no longer works, and nor can customers login to their accounts. I was wondering if anybody else had experience with this. I’m using v. 16.
Announcement
Collapse
No announcement yet.
cgi:error AH01215: defined(%hash) is deprecated
Collapse
X
-
ok thanks anyway Norman!
Maybe I'll have a go. It's not nice seeing hundreds of errors in the logs, and it makes it difficult to spot if there are any important ones...
...and I suppose at some point these will stop being warnings and become issues.
Leave a comment:
-
There may be other ocurrences of deprecated code.
Your error logs will tell you the script and line to look at. You then need to match that line cgi-bin file with the appropriate line in the source file in your Site folder that creates it. There's a post somewhere in the KB showing the relationship between these file-names. Perl help-sites will tell you how to fix the code.
Or just ignore it as it's only a warning, not an actual hard error!
Leave a comment:
-
Hi Norman,
I made the changes you suggested in post number 7, (edited search.pm and refreshed website) but the error is still occurring if anyone uses the search.
Leave a comment:
-
Thanks again Norman.
So everyone using Sellerdeck will have these errors in their error logs... but most people aren't bothered by them?
Leave a comment:
-
That's more dodgy code - this time in Search.pm. Look near the bottom for:
Code:$phashOutput->{$sProductReference} = $phash1->{$sProductReference} + $phash2->{$sProductReference}; # add this product to the output list, adding up relevance values
Code:$$phashOutput{$sProductReference} = $phash1->{$sProductReference} + $phash2->{$sProductReference}; # add this product to the output list, adding up relevance values
Code:$phashOutput->{$sProductReference} = $phashOutput->{$sProductReference} + %$phash2->{$sProductReference};
Code:$$phashOutput{$sProductReference} = $phashOutput->{$sProductReference} + %$phash2->{$sProductReference};
Leave a comment:
-
The original error has stopped but it's been replaced by a new one now!
Using a hash as a reference is deprecated at sl000001.pm line 615.
Code:[Mon Mar 27 18:51:03.907285 2017] [cgi:error] [pid 23478] [client 81.97.228.96:47022] AH01215: Using a hash as a reference is deprecated at sl000001.pm line 615.: /home/######/public_html/cgi-bin/ss000001.pl, referer: http://www.#####.co.uk/acatalog/index.html [Mon Mar 27 18:50:07.744572 2017] [cgi:error] [pid 23343] [client 81.97.228.96:46997] AH01215: Using a hash as a reference is deprecated at sl000001.pm line 615.: /home/######/public_html/cgi-bin/ss000001.pl, referer: http://www.######.co.uk/cgi-bin/cm000001.pl [Mon Mar 27 18:48:18.398021 2017] [cgi:error] [pid 23303] [client 81.97.228.96:46951] AH01215: Using a hash as a reference is deprecated at sl000001.pm line 615.: /home/######/public_html/cgi-bin/ss000001.pl, referer: http://www.######.co.uk/cgi-bin/ca000001.pl?ACTION=SHOWCART
Leave a comment:
-
Once again.... Norman to the rescue!
Thanks Norman, I don't know where Sellerdeck would be exactly without your (unpaid) support!!!
Leave a comment:
-
In the Perl language that deals with the Cart, Search and Checkout the defined statement is considered to be deprecated if used on hashes. This means that it may be removed from the language in future releases so should not be trusted to be always available or to run error free. Your system isn't failing but simply issuing a warning of a potential future problem.
SellerDeck uses some ancient code (circa 1998) in ACTINIC.pm (which is the source of file al000001.pm) and the line:
Code:if ((defined %::g_InputHash) &&
If you're feeling brave you could try editing ACTINIC.pm (in your Site folder) and replacing the above with:
Code:if (%::g_InputHash &&
P.S. Said code is still there in SD 2016.
Leave a comment:
-
cgi:error AH01215: defined(%hash) is deprecated
Checking my Cpanel for errors on my domain, I have found hundreds of errors like this.
It seems like this error is thrown up every time someone visits the shop.
Is there some code in al000001.pm that is now out of date and needs to be updated?
Anyone else seen this in their error logs?
Code:[Wed Mar 22 14:35:03.117236 2017] [cgi:error] [pid 3164] [client XX.XX.XX.XX:43761] AH01215: \t(Maybe you should just omit the defined()?): /home/XXXXXX/public_html/cgi-bin/dx000001.pl, referer: http://www.arka-shop.co.uk/acatalog/ear-stretching-expanders-steel-p1.html [Wed Mar 22 14:35:03.117219 2017] [cgi:error] [pid 3164] [client XX.XX.XX.XX:43761] AH01215: defined(%hash) is deprecated at al000001.pm line 911.: /home/XXXXXX/public_html/cgi-bin/dx000001.pl, referer: http://www.arka-shop.co.uk/acatalog/ear-stretching-expanders-steel-p1.html
Tags: None
Leave a comment: