prezto_config/plugins/perl/init.zsh

72 lines
1.7 KiB
Bash
Raw Normal View History

# For Perl older than 5.10.14, install local::lib.
# curl -L -C - -O http://search.cpan.org/CPAN/authors/id/A/AP/APEIRON/local-lib-1.008004.tar.gz
# tar xvf local-lib-1.008004.tar.gz
# cd local-lib-1.008004
# perl Makefile.PL --bootstrap=$HOME/Library/Perl/5.12
# make && make test && make install
#
# Install cpanminus:
# curl -L http://cpanmin.us | perl - --self-upgrade
#
if [[ "$OSTYPE" == darwin* ]]; then
# Perl is slow; cache its output.
cache_file="${0:h}/cache.zsh"
perl_path="$HOME/Library/Perl/5.12"
if [[ -f "$perl_path/lib/perl5/local/lib.pm" ]]; then
export MANPATH="$perl_path/man:$MANPATH"
if [[ ! -f "$cache_file" ]]; then
perl -I$perl_path/lib/perl5 -Mlocal::lib=$perl_path >! "$cache_file"
source "$cache_file"
else
source "$cache_file"
fi
fi
unset perl_path
unset cache_file
fi
# Set environment variables for launchd processes.
if [[ "$OSTYPE" == darwin* ]]; then
for env_var in PERL_LOCAL_LIB_ROOT PERL_MB_OPT PERL_MM_OPT PERL5LIB; do
launchctl setenv "$env_var" "${(P)env_var}" &!
done
unset env_var
fi
2011-08-28 21:28:09 +02:00
# Aliases
2011-03-14 06:43:33 +01:00
alias pbi='perlbrew install'
alias pbl='perlbrew list'
alias pbo='perlbrew off'
alias pbs='perlbrew switch'
alias pbu='perlbrew use'
alias ple='perl -wlne'
2011-08-28 21:28:09 +02:00
alias pd='perldoc'
2011-03-14 06:43:33 +01:00
2011-08-28 21:28:09 +02:00
# Perl Global Substitution
function pgs() {
if (( $# < 2 )) ; then
echo "Usage: $0 find replace [file ...]" >&2
return 1
fi
2011-03-14 06:43:33 +01:00
2011-08-28 21:28:09 +02:00
local find="$1"
local replace="$2"
repeat 2 shift
2011-03-14 06:43:33 +01:00
2011-08-28 21:28:09 +02:00
perl -i.orig -pe 's/'"$find"'/'"$replace"'/g' "$@"
2011-03-14 06:43:33 +01:00
}
2011-08-28 21:28:09 +02:00
# Perl grep since 'grep -P' is terrible.
function prep() {
if (( $# < 1 )) ; then
echo "Usage: $0 pattern [file ...]" >&2
return 1
fi
2011-03-14 06:43:33 +01:00
2011-08-28 21:28:09 +02:00
local pattern="$1"
shift
2011-03-14 06:43:33 +01:00
2011-08-28 21:28:09 +02:00
perl -nle 'print if /'"$pattern"'/;' "$@"
2011-03-14 06:43:33 +01:00
}