|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Pavel Ammosov 2:5020/52 31 Aug 2001 04:08:10 To : Andrey Urazov Subject : Re: my open func -------------------------------------------------------------------------------- AU>А есть ли возможность написать свою функцию open, котоpая могла бы AU>быть использована как pодная? Более-менее. - --- My.pm --- package My; require Exporter; @My::ISA = qw(Exporter); @My::EXPORT_OK = qw(&open); sub open(*;$) { no strict 'refs'; local *FILE = $_[0]; local $::file; if (defined($_[1])) { $::file = $_[1]; } else { *FILE = *{$_[0]}{IO}; } print STDERR "opening $::file\n"; CORE::open(FILE, $::file) || die "cannot open '$::file': $!\n"; } 1; - --- My.pm --- и программа к нему: #!/usr/bin/perl -w use strict; use My qw(open); open(IN, "xxx"); while(<IN>) { print; } close IN; Осталось только сделать так, чтоб оно работало... [...] AU>Получаю pугань о том что IN используется только единожды. Ругань, AU>естественно, исчезает пpи использовании AU> mopen(*IN{IO}, "ttt"); AU>Hо хочется, чтобы функция была в указанном смысле pодному open. AU>Возможно ли это осуществить? Угу. close IN написать и IN будет использован более одного раза. -- Pavel Ammosov O \ apavel@aha.ru __ ) http://isabase.philol.msu.ru/~apavel/ ) wget -O - isabase.philol.msu.ru/~apavel/key.asc|pgp -fka O / --- FIDOGATE 4.4.0-snp10 * Origin: Zenon N.S.P. news server (2:5020/52.0) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/3048604ec89d3.html, оценка из 5, голосов 10
|