diff --git a/src/Partcl/commands/array.pm b/src/Partcl/commands/array.pm index 684cc65..3ccf3a4 100644 --- a/src/Partcl/commands/array.pm +++ b/src/Partcl/commands/array.pm @@ -103,8 +103,11 @@ my sub exists($arrayName, $array) { } my sub get($arrayName, $array, $pattern = '*') { - my $result := pir::new__ps('TclList'); + if !exists($arrayName, $array) || +$array == 0 { + return ''; + } my $globber := StringGlob::Compiler.compile($pattern); + my $result := pir::new__ps('TclList'); for $array -> $key { if (?Regex::Cursor.parse($key, :rule($globber), :c(0))) { $result.push($key); diff --git a/t/cmd_array.t b/t/cmd_array.t index ed210cd..aa3a2fa 100755 --- a/t/cmd_array.t +++ b/t/cmd_array.t @@ -153,7 +153,7 @@ eval_is { catch {unset a} set a 2 array get a -} {} {array get, non array} {TODO NQPRX} +} {} {array get, non array} eval_is { catch {unset a}