Moduł File::NCopy

Uniwersytet Gdański - Instytut Matematyki - Zakład Informatyki - Strona domowa

Obsługa modułu File::NCopy

Opis

File::NCopy to moduł autorstwa Gabor'a Egressy'a - moduł potępiony :). Można używać zamiennie z Use File::Copy::Recursive. File::NCopy::copy kopiuje pliki bądź całe katalogi do katalogu, może kopiować wraz ze zmianą nazwy. Można również używać referencji do uchwytu pliku. Funkcjonalność jest bardzo podobna do Unix'owego polecenia cp. Jeśli argument jest ścieżką do katalogu oraz flaga rekursywnego kopiowania jest ustawiona, wówczas mamy działanie podobne do cp -R. W większości przypadków działa to podobnie do funkcji cp, jak już wcześniej wspomnieliśmy. Jeśli została wywołana w kontekście tablicowym, zwrócona zostaje tablica skopiowanych elementów (jeśli kopiowanie przebiegło pomyślnie), w przeciwnym wypadku, zwrócona zostaje liczba udanych kopii. Jeśli podano uchwyt do pliku, trudno być pewnym, czy plik który kopiujemy nie jest taki sam, do którego kopiujemy, ponieważ plik jest otwarty do zapisu i staje się to niemożliwe. Aby uniknąć tego problemu, należy używać nazw plików, jeśli tylko to możliwe, szczególnie w odniesieniu do plików. Jeśli podano uchwyt do pliku, nie jest on zamknięty, gdy zwrócona jest kopia, zostaje on zamknięty zaraz po zwróceniu wartości.

Download

Instalacja w systemie UNIX'owym

Po rozpakowaniu modułu wydajemy polecenia

perl Makefile.PL make make install

Jeżeli wszystko poszło zgodnie z planem, to możemy już korzystać z możliwości naszego nowego modułu. Sprawdzić, czy został pomyślnie zainstalowany możemy, pisząc chociażby takiego jednolinijkowca: perl -e 'use File::NCopy' Pomyślne wykonanie programu (żadnych komunikatów) daje nadzieję, że moduł jest zainstalowany i będzie działał.

Dostępne metody

Przykłady zastosowań modułu File::NCopy

Krótkie przykłady przedstawiono poniżej: use File::NCopy qw(copy); copy "file","other_file"; copy "file1","file2","file3","directory"; kopiowanie rekursywne: copy \1,"directory1","directory2"; copy \1,"file1","file2","directory1","file3","directory2","file4","directory"; kopiowanie przy użyciu uchwytów do plików: copy \*FILE1,\*FILE2; copy \*FILE1,"file"; copy "file1",\*FILE2; nie określiliśmy parametru \1, bo nie chcemy kopiować rekursywnie: copy "*.c","*.pl","programs"; copy "*", "backup"; nieco bardziej złożony przykład: $file = File::NCopy->new( 'recursive' => 0, 'preserve' => 0, 'follow_links' => 0, 'force_write' => 0, 'set_permission' => \&File::NCopy::u_chmod, 'file_check' => \&File::NCopy::f_check, 'set_times' => \&File::NCopy::s_times, ); $file = File::NCopy->new(recursive => 1); $file->copy "file","other_file"; $file->copy "directory1","directory2"; $file = File::NCopy->new(u_chmod => \&my_chmod,f_check => \&my_fcheck); $file->copy "directory1","directory2";

Dodatkowe informacje

Macierzysta strona dokumentacji do modułu http://search.cpan.org/~chorny/File-NCopy-0.35/lib/File/NCopy.pm

Autor opracowania

Szymon Roziewski

Email: sroziews@manta.univ.gda.pl

Uniwersytet Gdański - Instytut Matematyki - Zakład Informatyki - Strona domowa - Perl - Wyklady
[c] Piotr Arłukowicz, materiały z tej strony udostępnione są na licencji GNU.