Moduł File::Temp
Uniwersytet Gdański - Instytut Matematyki - Zakład Informatyki - Strona domowaCo to jest?
Moduł File::Temp służy do obsługi plików i katalogów tymczasowych. Moduł ten zawiera dwie funkcje:
- tempfile()
- zwraca uchwyt do pliku tymczasowego i jego nazwę.
- tempdir()
- tworzy katalog tymczasowy i zwraca jego nazwę.
Dzięki temu, że funkcja tempfile() zwraca jednocześnie nazwę pliku i jego uchwyt unikamy sytuacji "wyścigu".
Funkcja tempfile()
Funkcję tempfile() można wywołać na kilka sposobów:
- ($filehandle, $filename) = tempfile()
- tworzy plik tymczasowy oraz zwraca jego uchwyt i nazwę.
- ($filehandle, $filename) = tempfile($template)
- tworzy plik tymczasowy używając podanego wzorca, znaki X na końcu wzorca zostają zamienione na dowolne znaki alfanumeryczne.
- ($filehandle, $filename) = tempfile($template, SUFFIX => $suffix)
- do utworzonej wg. wzorca nazwy pliku dodany jest przyrostek $suffix (np. zawierający rozszerzenie).
- ($filehandle, $filename) = tempfile($template, DIR => $dir)
- tworzy plik tymczasowy w określonym katalogu.
- ($filehandle, $filename) = tempfile($template, UNLINK => 1)
- tworzy plik tymczasowy który będzie usunięty po zamknięciu uchwytu lub zakończeniu programu. Jest to domyślne ustawienie.
- $filehandle = tempfile()
- tworzy plik tymczasowy, zwraca tylko jego uchwyt.
- (undef, $filename) = tempfile($template, OPEN => 0)
- zwraca nazwę pliku, ale go nie otwiera. Nie jest to zalecany sposób tworzenia pliku ze względu na prawdopodobieństwo wystąpienia sytuacji "wyścigu".
Pliki są domyślnie tworzone w domyślnym katalogu tymczasowym (można użyć funkcji tmpdir() aby sprawdzić gdzie ten katalog się znajduje), chyba że użyjemy opcji DIR. Opcje w wywołaniach funkcji można łączyć.
Funkcja tempdir
Sposoby użycia funkcji tempdir():
- $tempdir = tempdir()
- tworzy nowy katalog tymczasowy.
- $tempdir = tempdir($template)
- tworzy nowy katalog tymczsowy o podanym wzorcu.
- $tempdir = tempdir(DIR => $dir)
- tworzy katalog tymczasowy w podanym katalogu.
- $tempdir = tempdir(CLEANUP => 1)
- worzy nowy katalog tymczasowy. Po zakończeniu programy katalog i wszystkie pliki w tym katalogu zostaną usunięte.
Przykład działania
Pliki tymczasowe służą do chwilowego przechowywania dużej liczby danych lub do komunikacji z innymi programami. W sytuacji gdy jednocześnie może być uruchomionych kilka egzemplarzy danego programu i gdy nie możemy ustalić nazwy pliku w programie na stałe należy skorzystać z plików tymczasowych.
Przykładem może być program, który przeszukuje strony internetowe w poszukiwaniu adresów e-mail, zapisuje je do pliku tymczasowego, a po wyszukaniu np. 100000 adresów, wysyła do każdego bardzo dużo bardzo ważnych informacji:)
Poniższy kod pokazuje mechanizm tworzenia i zapisywania do plików tymczasowych.
use File::Temp qw(tempfile tempdir)
#najpierw utworzymy przykładowy katalog tymczasowy, który zostanie usunięty po zamknięciu programu
$dir = tempdir(CLEANUP => 1);
#tworzymy wzór nazwy pliku
$template = "tempXXXXX";
#teraz utworzymy nowy plik tymczasowy
($filehandle, $filename) = tempfile($template, DIR => $dir, SUFFIX => ".tmp");
#na koniec wypiszemy nazwę utworzonego pliku i katalogu
print "directory: ",$dir,"\nfile: ",$filename;
print $filehandle "Plik tymczasowy istniejący do momentu zakończenia programu.\n"
Dokumentacja
- Więcej na ten temat: http://search.cpan.org/~tjenness/File-Temp-0.18/Temp.pm
Kontakt i informacje o autorze opracowania
Autor: P.S.