File: hash.t

package info (click to toggle)
libtie-simple-perl 1.04-4
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 144 kB
  • sloc: perl: 139; makefile: 7
file content (27 lines) | stat: -rw-r--r-- 737 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# vim: set ft=perl :

use strict;
use Test::More tests => 7;
use Tie::Simple;

my %y = (A => 1, B => 2, C => 3);
tie my %x, 'Tie::Simple', \%y,
	FETCH    => sub { my ($a, $k) = @_; $$a{$k} },
	STORE    => sub { my ($a, $k, $v) = @_; $$a{$k} = $v },
	DELETE   => sub { my ($a, $k) = @_; delete $$a{$k} },
	CLEAR    => sub { my $a = shift; %$a = () },
	EXISTS   => sub { my ($a, $k) = @_; exists $$a{$k} },
	FIRSTKEY => sub { my $a = shift; keys %$a; each %$a },
	NEXTKEY  => sub { my $a = shift; each %$a };

is($x{A}, 1, 'FETCH');
$x{A} = 4;
is($y{A}, 4, 'STORE');
delete $x{A};
ok(!exists $y{A}, 'DELETE');
%x = ();
ok(!%y, 'CLEAR');
%x = (X => 5, Y => 6, Z => 7);
while (my ($k, $v) = each %x) {
	is($v, $y{$k}, 'FIRSTKEY/NEXTKEY');
}