in reply to delete on tied variables
What is a hash slice and how is one written in Perl?
A means of selecting multiple elements for fetching or setting. An example would be @hash{ 'key1', 'key2', ... }. See perldata for details.
if a delete function in a Perl program specifies a slice, will the interpreter break it up into individual calls to DELETE?
Yes.
{ package Tester; use Tie::Hash qw(); our @ISA = 'Tie::StdHash'; sub DELETE { my $self = shift; print("DELETE @_\n"); $self->SUPER::DELETE(@_) } } { tie my %hash, 'Tester'; %hash = ( a => 1, b => 2, c => 3, d => 4, ); delete @hash{qw( b c )}; print(join(' ', keys %hash), "\n"); }
DELETE b DELETE c a d
If there are other pages that cover this subject, please tell me.
Update: Formatting changes. Switched from using array to using hash in DELETE test.
|
|---|