diff --git a/bin/efa b/bin/efa
index b55ffc35f5fd1c46c2bd80f12fdd3f56af911d9f..1206f2c4d5347178f3dcd9d4d6876926340c48a1 100755
--- a/bin/efa
+++ b/bin/efa
@@ -63,13 +63,13 @@ if (not (@from and @to)) {
 }
 
 for my $pair (
-	[$from[1], \$from_type],
-	[$via[1] , \$via_type ],
-	[$to[1]  , \$to_type  ],
+	[\@from, \$from_type],
+	[\@via , \$via_type ],
+	[\@to  , \$to_type  ],
 ) {
-	next if (not defined $pair->[0]);
+	next if (not defined $pair->[0]->[1]);
 
-	if ($pair->[0] =~ s{ ^ (?<type> [^:]+ ) : \s* (?<target> .+ ) $ }
+	if ($pair->[0]->[1] =~ s{ ^ (?<type> [^:]+ ) : \s* (?<target> .+ ) $ }
 		{$+{target}}x)
 	{
 		given($+{type}) {