#############################################################################
## Name: build/Wx/Overload/Handle.pm
## Purpose: builds overload constants
## Author: Mattia Barbon
## Modified by:
## Created: 17/08/2001
## RCS-ID: $Id: Handle.pm 2057 2007-06-18 23:03:00Z mbarbon $
## Copyright: (c) 2001-2003, 2005-2006 Mattia Barbon
## Licence: This program is free software; you can redistribute it and/or
## modify it under the same terms as Perl itself
#############################################################################
package Wx::Overload::Handle;
use strict;
use Wx::build::Utils qw(read_file write_file);
sub TIEHANDLE {
my( $class, $file ) = @_;
return bless { FILE => $file,
DATA => '' }, $class;
}
sub PRINT {
my( $this ) = shift;
$this->{DATA} .= join '', @_;
}
sub do_write {
my( $this ) = @_;
print "Writing '", $this->{FILE}, "'.\n";
write_file( $this->{FILE}, $this->{DATA} );
}
sub CLOSE {
my( $this ) = @_;
eval {
my $text = read_file( $this->{FILE} );
if( $text eq $this->{DATA} ) {
print "'", $this->{FILE}, "' not modified, skipping\n";
} else {
$this->do_write
}
};
if( $@ ) {
$this->do_write;
};
}
1;