Получить значение из объекта в Perl

Я получаю

$VAR1 = bless( \*{'Fh::fh00001Screenshot.png'}, 'Fh' );

в переменной. Но мне нужно получить fh00001Screenshot.png от него. Как я могу получить это?

1 ответ

Fh пакет используется внутри CGI модуль для обработки временных файлов, используемых для построения составных данных. Вы не должны использовать это напрямую.

Проверьте внимательно, чтобы убедиться, что нет лучшего способа, прежде чем использовать этот код, который исходит от CGI код для Fh::asString

(my $name = $$VAR1) =~ s/^\*(\w+::fh\d{5})+//; 
print $name;

выход

Screenshot.png

Обновить

Вместо того, чтобы выбирать биты из CGI код, похоже, этот пакет, который должен быть частным, доступен из вызывающего кода. Используйте только $var->asString вместо этого, как это

use strict;
use warnings;

use CGI;

my $var = do {
  no strict 'refs';
  my $var = bless( \*{'Fh::fh00001Screenshot.png'}, 'Fh' );
};

print $var->asString;
Другие вопросы по тегам