return $cmd if exists $def->{$cmd}; # command is already complete
- my $is_alias = sub { ref($_[0]) eq 'HASH' && $_[0]->{alias} };
+ my $is_alias = sub { ref($_[0]) eq 'HASH' && exists($_[0]->{alias}) };
my @expanded = grep { /^\Q$cmd\E/ && !$is_alias->($def->{$_}) } keys %$def;
return $expanded[0] if scalar(@expanded) == 1; # enforce exact match
shift @$args; # no need for program name
my $print_result = sub {
foreach my $p (@_) {
- print "$p\n" if $p =~ m/^$cur/;
+ print "$p\n" if $p =~ m/^\Q$cur\E/;
}
};