package NewScalar;
require Tie::Scalar;
-
+
@ISA = (Tie::Scalar);
-
+
sub FETCH { ... } # Provide a needed method
sub TIESCALAR { ... } # Overrides inherited method
-
-
+
+
package NewStdScalar;
require Tie::Scalar;
-
+
@ISA = (Tie::StdScalar);
-
+
# All methods provided by default, so define only what needs be overridden
sub FETCH { ... }
-
-
+
+
package main;
-
+
tie $new_scalar, 'NewScalar';
tie $new_std_scalar, 'NewStdScalar';
=cut
use Carp;
+use warnings::register;
sub new {
my $pkg = shift;
sub TIESCALAR {
my $pkg = shift;
if (defined &{"{$pkg}::new"}) {
- carp "WARNING: calling ${pkg}->new since ${pkg}->TIESCALAR is missing"
- if $^W;
+ warnings::warnif("WARNING: calling ${pkg}->new since ${pkg}->TIESCALAR is missing");
$pkg->new(@_);
}
else {