I don't think 'excessive overhead' has any meaning without a context.
It might be excessive for some applications and not for others.
And I think the interface is sufficiently interesting that
the overhead might be worth spending. Being able to write
$stack = newitem;
for a push operation and
$top = $stack;
for a pop operation is pretty clever.
But one thing I would do differently is to resolve the
fifo/lifo string to boolean in the
TIESCALAR method instead of doing it over
and over on every FETCH. Just change the TIESCALAR
like this:
sub TIESCALAR {
return unless $_[1] =~ /[fl]i[fl]o/i;
my $stack = $_[1] =~ /([fl])i\1o/i;
) return bless [$stack,[]], $_[0];
}
Then we can eliminate the regex from
FETCH;
the
if line becomes simply:
if ($_[0]->[0]) {