Учитывая массив Tcl
array set ary {foo 11 bar 12 baz 13}
Вы можете передать его perl следующим образом:
exec perl script.pl {*}[array get ary]
А в perl вы можете сказать
my %hash = @ARGV;
Демонстрация (из приглашения оболочки):
$ echo '
array set ary {foo "11 22" bar 12 baz 13}
puts [exec perl -MData::Dump=dd -e {my %hash = @ARGV; dd \%hash} {*}[array get ary]]
' | tclsh
{ bar => 12, baz => 13, foo => "11 22" }