расположение файла из IO :: File - PullRequest
0 голосов
/ 14 июня 2011

IO :: File-> new_tmpfile возвращает объект IO :: File, который указывает на файл. Можно ли получить местоположение файла в Windows?

1 Ответ

7 голосов
/ 14 июня 2011

Этого можно добиться с помощью File :: Temp :

my $fh = File::Temp->new();
my $fname = $fh->filename;

В случае IO :: File получение имени временного файла не представляется возможным. Источник IO :: File показывает, что в объекте хранится только OutputStream:

void
new_tmpfile(packname = "IO::File")
    const char * packname
    PREINIT:
    OutputStream fp; ## it doesn't look like you can get file name out of this
    GV *gv;
    CODE:
#ifdef PerlIO
    fp = PerlIO_tmpfile();
#else
    fp = tmpfile();
#endif
    ...

Насколько я знаю, не все потоки имеют имя файла (например, каналы).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...