2011-03-14 06:43:33 +01:00
|
|
|
# https://github.com/dbbolton
|
|
|
|
#
|
|
|
|
# Below are some useful Perl-related aliases/functions that I use with zsh.
|
|
|
|
|
|
|
|
|
|
|
|
# Aliases ###################################################################
|
|
|
|
|
|
|
|
# perlbrew ########
|
|
|
|
alias pbi='perlbrew install'
|
|
|
|
alias pbl='perlbrew list'
|
|
|
|
alias pbo='perlbrew off'
|
|
|
|
alias pbs='perlbrew switch'
|
|
|
|
alias pbu='perlbrew use'
|
|
|
|
|
|
|
|
# Perl ############
|
|
|
|
|
|
|
|
# perldoc`
|
|
|
|
alias pd='perldoc'
|
|
|
|
|
|
|
|
# use perl like awk/sed
|
|
|
|
alias ple='perl -wlne'
|
|
|
|
|
|
|
|
# show the latest stable release of Perl
|
2018-08-07 20:42:02 +02:00
|
|
|
alias latest-perl='curl -s https://www.perl.org/get.html | perl -wlne '\''if (/perl\-([\d\.]+)\.tar\.gz/) { print $1; exit;}'\'
|
2011-03-14 06:43:33 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Functions #################################################################
|
|
|
|
|
2015-02-22 18:57:42 +01:00
|
|
|
# newpl - creates a basic Perl script file and opens it with $EDITOR
|
2011-03-14 06:43:33 +01:00
|
|
|
newpl () {
|
|
|
|
# set $EDITOR to 'vim' if it is undefined
|
|
|
|
[[ -z $EDITOR ]] && EDITOR=vim
|
|
|
|
|
|
|
|
# if the file exists, just open it
|
|
|
|
[[ -e $1 ]] && print "$1 exists; not modifying.\n" && $EDITOR $1
|
|
|
|
|
|
|
|
# if it doesn't, make it, and open it
|
|
|
|
[[ ! -e $1 ]] && print '#!/usr/bin/perl'"\n"'use strict;'"\n"'use warnings;'\
|
|
|
|
"\n\n" > $1 && $EDITOR $1
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
# pgs - Perl Global Substitution
|
|
|
|
# find pattern = 1st arg
|
|
|
|
# replace pattern = 2nd arg
|
|
|
|
# filename = 3rd arg
|
|
|
|
pgs() { # [find] [replace] [filename]
|
|
|
|
perl -i.orig -pe 's/'"$1"'/'"$2"'/g' "$3"
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
# Perl grep, because 'grep -P' is terrible. Lets you work with pipes or files.
|
|
|
|
prep() { # [pattern] [filename unless STDOUT]
|
|
|
|
perl -nle 'print if /'"$1"'/;' $2
|
|
|
|
}
|
2024-11-19 07:11:38 +01:00
|
|
|
|
|
|
|
# If the 'perlbrew' function isn't defined, perlbrew isn't setup.
|
|
|
|
if ! typeset -f perlbrew > /dev/null; then
|
|
|
|
# Has PERLBREW_ROOT been set prior, and is it a valid directory? If so, store
|
|
|
|
# value
|
|
|
|
if [[ -n "${PERLBREW_ROOT}" && -d "{{PERLBREW_ROOT}" ]]; then
|
|
|
|
perlbrew_root="${PERLBREW_ROOT}"
|
|
|
|
fi
|
|
|
|
|
|
|
|
# If perlbrew_root isn't set yet, then set the default path
|
|
|
|
if [[ -z "${perlbrew_root}" ]]; then
|
|
|
|
perlbrew_root="${HOME}/perl5/perlbrew"
|
|
|
|
fi
|
|
|
|
|
|
|
|
# If we can find perlbrew's 'bashrc' (yes, I know!)...
|
|
|
|
if [[ -d "${perlbrew_root}" && -f "${perlbrew_root}/etc/bashrc" ]]; then
|
|
|
|
# and if NO_AUTO_ADD isn't set
|
|
|
|
if [[ -z "${PERLBREW_NO_AUTO_ADD}" ]]; then
|
|
|
|
# Initialize perlbrew
|
|
|
|
source "${perlbrew_root}/etc/bashrc"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Clear our temporary variable
|
|
|
|
unset perlbrew_root
|
|
|
|
fi
|