diff --git a/dyndns.pl b/dyndns.pl
index 63e0e71..f65e286 100755
--- a/dyndns.pl
+++ b/dyndns.pl
@@ -414,8 +414,8 @@ foreach my $d (@DNSDomain) {
     if ($d eq '!') { $d = $cgi->virtual_host; }
     elsif ($d eq '?') { $d = $cgi->param('domain'); }
     elsif ($d =~ /-?\d+/) {
-        if ($d <0) { $d = join('.', splice([ split(/\./, $cgi->virtual_host) ], $d)); }
-        else { $d = join('.', splice([ split(/\./, $host) ], ($d) ? -$d : 1)); }
+        if ($d <0) { $d = join('.', splice(@{[ split(/\./, $cgi->virtual_host) ]}, $d)); }
+        else { $d = join('.', splice(@{[ split(/\./, $host) ]}, ($d) ? -$d : 1)); }
     }
     $dnsdomain = $d if ($host && length($host) == length($d)+rindex($host,$d));
     last if $dnsdomain;