I made this patch that applies against GNUpod 0.99.8 and fixes a couple of deprecations since Perl 5.22 which are errors since I think Perl 5.23. My system has Perl 5.24. I don't know Perl and have never written any Perl in my life. But now I can sync my iPod with a light and minimal tool again! All of these fixes have been sitting in the Savannah bug tracker for years but it looks like they haven't merged fixes and cut a new release in a long time: http://savannah.gnu.org/bugs/?48112 PUBLIC DOMAIN. Enjoy. diff -ru3 a/src/ext/FileMagic.pm b/src/ext/FileMagic.pm --- a/src/ext/FileMagic.pm 2009-07-10 19:20:05.000000000 -0400 +++ b/src/ext/FileMagic.pm 2018-03-04 13:00:31.895513401 -0500 @@ -362,7 +362,7 @@ foreach (keys(%{$in})) { my $kvp = __flatten($_, $exclude); # key next if !defined($kvp); - my $v = __flatten(%{$in}->{$_}, $exclude); # value + my $v = __flatten($in->{$_}, $exclude); # value $kvp .= " : ".$v if (defined($v) && ("$v" ne "")); push @out, $kvp; } @@ -418,9 +418,9 @@ my $case = "check"; if (ref($options) eq "HASH") { - $joinby = %{$options}->{joinby} if defined(%{$options}->{joinby}); - $wspace = lc(%{$options}->{wspace}) if defined(%{$options}->{wspace}); - $case = lc(%{$options}->{case}) if defined(%{$options}->{case}); + $joinby = $options->{joinby} if defined($options->{joinby}); + $wspace = lc($options->{wspace}) if defined($options->{wspace}); + $case = lc($options->{case}) if defined($options->{case}); } my $merged = ""; diff -ru3 a/src/ext/XMLhelper.pm b/src/ext/XMLhelper.pm --- a/src/ext/XMLhelper.pm 2009-07-10 19:20:05.000000000 -0400 +++ b/src/ext/XMLhelper.pm 2018-03-04 08:13:03.358032895 -0500 @@ -359,7 +359,7 @@ print OUT " \n"; } elsif(my $phr = get_plpref($current_plname)) { #plprefs found.. - if (defined(@{$XDAT->{playlists}->{data}->{$current_plname}})) { #the playlist is not empty + if (@{$XDAT->{playlists}->{data}->{$current_plname}}) { #the playlist is not empty print OUT "\n ".mkfile({playlist=>$phr}, {return=>1,noend=>1})."\n"; foreach(@{$XDAT->{playlists}->{data}->{$current_plname}}) { print OUT " $_\n";