}
## perl local lib
-[[ ! -v PERL_LOCAL_LIB_ROOT && -v commands[perl] &&
- -d ${XDG_DATA_HOME:-~/.local/share}/perl5/lib/perl5 ]] &&
- eval $(perl -I${XDG_DATA_HOME:-~/.local/share}/perl5/lib/perl5 \
- -Mlocal::lib=${XDG_DATA_HOME:-~/.local/share}/perl5 2>/dev/null)
-
+if [[ ! -v PERL_LOCAL_LIB_ROOT && -v commands[perl] ]] {
+ _p5=${XDG_DATA_HOME:-~/.local/share}/perl5
+ [[ -d $_p5 ]] || mkdir -p $_p5
+ if [[ -f $_p5/lib/perl5/local/lib.pm ]] {
+ eval $(perl -I$_p5/lib/perl5 -Mlocal::lib=$_p5 2>/dev/null)
+ } else {
+ # emulate local::lib if not installed
+ path=($_p5/bin "${path[@]}")
+ export \
+ PERL_MB_OPT="--install_base '$_p5'" \
+ PERL_MM_OPT=INSTALL_BASE=$_p5 \
+ PERL5LIB=$_p5/lib/perl5 \
+ PERL_LOCAL_LIB_ROOT=$_p5${PERL_LOCAL_LIB_ROOT:+:$PERL_LOCAL_LIB_ROOT}
+ }
+ unset _p5
+}
## go
if [[ -v commands[go] ]] {
[[ ! -v GOPATH ]] && export GOPATH=${XDG_DATA_HOME:-~/.local/share}/go:~/go