--- /dev/null
+use strictures 1;
+
+package Object::Remote::GlobProxy;
+require Tie::Handle;
+our @ISA = qw( Tie::Handle );
+
+sub TIEHANDLE {
+ my ($class, $glob_container) = @_;
+ return bless { container => $glob_container }, $class;
+}
+
+my @_delegate = (
+ [READLINE => sub { wantarray ? $_[0]->getlines : $_[0]->getline }],
+ (map { [uc($_), lc($_)] } qw(
+ write
+ print
+ printf
+ read
+ getc
+ close
+ open
+ binmode
+ eof
+ tell
+ seek
+ )),
+);
+
+for my $delegation (@_delegate) {
+ my ($from, $to) = @$delegation;
+ no strict 'refs';
+ *{join '::', __PACKAGE__, $from} = sub {
+ $_[0]->{container}->$to(@_[1 .. $#_]);
+ };
+}
+
+1;