Переменные typeglob


В perl есть специальный тип typeglob.
Значение *foo включает в себя $foo,@foo,%foo,&foo и просто foo.

# Запомнить дескриптор
$f = *STDOUT;

# Запомнить ссылку
$f = *STDOUT;

sub openfile {
    my $filename = shift;
    local *F;
    open(F,$filename) or return undef;
    return *F;
}

$f = openfile('/tmp/test');