-function ctags {
- if [ $# != 0 ];then `which ctags` "$@";else
- rm -f tags;find -type f -a '(' -name "*.[chC]" -o -name "*.cc" -o -name "*.java" ')'|xargs `which ctags` -a --file-tags
- fi; }; export -f ctags
+function ctags {(unset ctags;
+ if [ $# != 0 ];then ctags "$@";else
+ find -type f -a '(' -name "*.[chC]" -o -name "*.cc" -o -name "*.java" -o -name "*.p[lm]" ')'|ctags --file-tags -L -
+ fi; );}; export -f ctags
+function cpan {(unset cpan; if [ $# = 0 ];then cpan;else perl -MCPAN -e "install qw($*);";fi; );}; export -f cpan
+function exx { cd "`unset exx;exx "$@"|tee /proc/self/fd/2|tail -n1|sed -n 's/^extdir=//p'`"; };export -f exx
+function revlines { perl -e 'my @r=();push @r,$_ while (<>);print pop @r while @r;'; }; export -f revlines