Associative arrays seem to be local by default when declared inside a function body, where they should be global. The following code

```
#!/bin/bash

f() {
    declare -A map
    map[x]=a
    map[y]=b
}

f
echo x: ${map[x]} y: ${map[y]}

```

produces the output:

```
x:  y:

```

while this

```
#!/bin/bash

declare -A map

f() {
    map[x]=a
    map[y]=b
}

f
echo x: ${map[x]} y: ${map[y]}

```

produces the output:

```
x: a y: b

```

---

Is it possible to declare a global associative array within a function?
Or what work-around can be used?