The Perl Toolchain Summit 2025 Needs You: You can help 🙏 Learn more

#!/usr/bin/env perl
# XML::Axk::Vars::Scalar - tie a scalar to a member in X::A::Core.
# Copyright (c) 2018 cxw42. All rights reserved. Artistic 2.
use parent -norequire => 'Tie::StdScalar';
# Tie methods ==================================================== {{{1
# Create a scalar tied to a script-accessible var in an XAC instance
# @param $class
# @param $core XML::Axk::Core instance
# @param $varname Name of the new variable
sub TIESCALAR {
my $class = shift;
croak("Internal use only --- see XML::Axk::Sandbox")
unless scalar caller eq 'XML::Axk::Sandbox';
my ($sandbox, $lang, $varname) = @_;
croak 'No sandbox' unless ref $sandbox eq 'XML::Axk::Sandbox';
croak 'No language name' unless $lang;
croak 'No varname' unless $varname;
#say "Tying scalar \$$varname to $core";
my $hrSP = $sandbox->sps($lang);
return bless \($hrSP->{$varname}), $class;
} #TIESCALAR()
# }}}1
1;
# vi: set ts=4 sts=4 sw=4 et ai fo-=ro foldmethod=marker foldlevel=2: #