tie $foo, Stack, 'fifo' or die "Could not tie"; $foo = $_ for (1..10); print while (defined($_ = $foo)); package Stack; sub TIESCALAR { $_[1] =~ /[fl]i[fl]o/i && return bless [$_[1],[]], $_[0]; } sub STORE { push @{$_[0]->[1]}, $_[1]; } sub FETCH { return undef unless @{$_[0]->[1]}; if ($_[0]->[0] =~ /(f|l)i\1o/i) { return shift @{$_[0]->[1]}; } else { return pop @{$_[0]->[1]}; } }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Simple stack implementation
by Adam (Vicar) on Nov 18, 2000 at 00:24 UTC | |
by Dominus (Parson) on Nov 18, 2000 at 01:10 UTC | |
by Adam (Vicar) on Nov 18, 2000 at 01:48 UTC | |
by Dominus (Parson) on Nov 18, 2000 at 19:37 UTC | |
|
Re: Simple stack implementation
by extremely (Priest) on Nov 18, 2000 at 13:46 UTC |