PERL_MODULES_LIST="/path/to/modules.list" _perl_module() { COMPREPLY=(); cur="${COMP_WORDS[COMP_CWORD]}" if [[ ${cur} == ?* ]] ; then COMPREPLY=( $(grep "^${cur}" "$PERL_MODULES_LIST" | sed -e 's/:/\\:/g') ) return 0 fi } complete -F _perl_module V complete -F _perl_module v complete -F _perl_module d