sub open(*;$)
{
no strict 'refs';
local *FILE = $_[0];
local $::file;
if (defined($_[1])) {
$::file = $_[1];
} else {
*FILE = *{$_[0]}{IO};
}
print STDERR "opening $::filen";
CORE:pen(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 /