Манипулирование файловыми хэндлерами в Perl |
[исправить] |
Пример хранение дескрипторов в хэше:
my %user_fd = ();
if (! defined $user_fd{$cur_login}){
open($user_fd{$cur_login}, ">$cur_file") or return -1;
}
print {$user_fd{$cur_login}} "TEST\n";
close($user_fd{$cur_login});
Пример передачи дескриптора из функции:
# Для perl 5.6 и старше
open (my $fh, $file_name);
print $fh "Hello World!\n";
process_file( $fh );
open (FILE, "> $filename)";
process_typeglob( *FILE );
process_reference( \*FILE );
sub process_typeglob { local *FH = shift; print FH "Typeglob!" }
sub process_reference { local $fh = shift; print $fh "Reference!" }
my $fh = myopen("file_path");
while (<$fh>) {
....
}
close $fh;
sub myopen {
my $path = shift;
local *FH;
open (FH, $path) || return undef;
return *FH;
}
|
|
|
|
Раздел: Корень / Программисту и web-разработчику / Perl / Работа с файлами |