2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-01-31 06:39:11 +00:00

SMUtils.pm: new version 1.28.0

git-svn-id: https://svn.fhem.de/fhem/trunk@29411 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
nasseeder1 2024-12-07 22:01:17 +00:00
parent ef7624a8aa
commit b2bfc3b22a

View File

@ -26,6 +26,7 @@
#########################################################################################################################
# Version History
# 1.28.0 07.12.2024 add function delHashRefDeep
# 1.27.4 05.12.2024 expand evaljson for SolarForecast
# 1.27.3 26.10.2024 compatibility to SSCam V 9.12.0
# 1.27.2 16.03.2024 change checkModVer text output
@ -61,13 +62,14 @@ use FHEM::SynoModules::ErrCodes qw(:all); # Erro
use GPUtils qw( GP_Import GP_Export );
use Carp qw(croak carp);
use version 0.77; our $VERSION = version->declare('1.27.4');
use version 0.77; our $VERSION = version->declare('1.28.0');
use Exporter ('import');
our @EXPORT_OK = qw(
getClHash
delClHash
delReadings
delHashRefDeep
createReadingsFromArray
checkModVer
addCHANGED
@ -294,6 +296,30 @@ sub slurpFile {
return ($errorcode, $content);
}
###############################################################################
# Hash Referenz rekursiv löschen
#
# Stellt sicher, dass alle verschachtelten Strukturen explizit
# gelöscht werden. Dies ist besonders nützlich um
# sicherzustellen, dass keine zirkulären Referenzen bestehen,
# die die Speicherfreigabe verhindern könnten.
###############################################################################
sub delHashRefDeep {
my $href = shift // carp $carpnohash && return;
for my $key (keys %{$href}) {
if (ref $href->{$key} eq 'HASH') {
delHashRefDeep ($href->{$key});
}
delete $href->{$key};
}
$href = undef; # Optional: Garbage Collection erzwingen
return;
}
###############################################################################
# einen Zeitstring YYYY-MM-TT hh:mm:ss in einen Unix
# Timestamp umwandeln