Sponsoring The Perl Toolchain Summit 2025: Help make this important event another success Learn more

#!/usr/bin/ruby
do {
const (
a = 99,
b = 42,
)
assert_eq(a, 99)
assert_eq(b, 42)
const *foo = (1,2,3)
const :bar = (a => 14, b => 15)
assert_eq(foo, [1,2,3])
assert_eq(bar, Hash(a => 14, b => 15))
foo[0] = 99
bar{:b} = 42
assert_eq(foo, [99, 2, 3])
assert_eq(bar, Hash(a => 14, b => 42))
bar{:c} = 99
assert_eq(bar, Hash(a => 14, b => 42, c => 99))
}
do {
const (
*x = (1,2,3),
:y = (x => 1, y => 2),
)
assert_eq(x, [1,2,3])
assert_eq(y, Hash("x" => 1, "y" => 2))
x[0] = 42
y{:x} = 3
assert_eq(x, [42, 2, 3])
assert_eq(y, Hash(x => 3, y => 2))
}
do {
const(foo = 42, bar = foo+2)
assert_eq(foo, 42)
assert_eq(bar, 44)
}
say "** Test passed!"