Значение голого слова варьируется. В большинстве случаев голое слово - это вызов функции.
sub foo { say "Hello"; }
foo;
Иногда это строковый литерал.
$x{foo} # $x{"foo"}
В других обстоятельствах он производит тип-глоб.
print STDOUT "foo"; # print { *STDOUT } "foo";
В этом случае
open3(HIS_IN, HIS_OUT, HIS_ERR, ...)
эквивалентно
open3("HIS_IN", "HIS_OUT", "HIS_ERR", ...)
но open3
использует эту строку в качестве имени глобуса в пакете вызывающей стороны, поэтому приведенное выше функционально эквивалентно
open3(*HIS_IN, *IS_OUT, *HIS_ERR, ...)