how about adding require Tie::Scalar
There's not much point in having a base class if you override all methods :) Well, I don't use new() and DESTROY(), but those are rather optional...
and throwing this in the code catacombs? this is a nice, simple answer to retrieving the current time.
It doesn't belong there. This use should not be encouraged, just use time instead. This was a one-minute hack, typed in my browser. If you think it belongs there, go ahead, there is no copyright at all :)
While you're at it, create these as well:
package Tie::Print;
require Tie::Scalar; our @ISA = ('Tie::StdScalar');
sub STORE { print pop }
package Tie::Localtime::Scalar;
require Tie::Scalar; our @ISA = ('Tie::StdScalar');
sub FETCH { return scalar localtime }
etcetera
Have a look at perlfunc for more ideas. Or just use a one-fits all tie:
package Tie::Scalar::Miscellaneous;
use Carp;
use strict;
sub TIESCALAR {
my ($class, %functions) = @_;
$_ ||= q(croak 'Not implemented') for @functions{qw/store fetch/};
$_ = eval "sub { $_ ( \@_ ) }" for @functions{qw/store fetch/};
bless \%functions, $class;
}
sub STORE {
shift->{store}->(pop)
}
sub FETCH {
shift->{fetch}->();
}
Which can be used like:
tie my $printer, 'Tie::Scalar::Miscellaneous', store => 'print';
$printer = "Hello, world!\n";
No, I'm not being serious.
- Yes, I reinvent wheels.
- Spam: Visit eurotraQ.
|