diff --git a/plugins/perl/perl.plugin.zsh b/plugins/perl/perl.plugin.zsh index c5590e53..05f2a224 100644 --- a/plugins/perl/perl.plugin.zsh +++ b/plugins/perl/perl.plugin.zsh @@ -1,62 +1,36 @@ -# https://github.com/dbbolton -# -# Below are some useful Perl-related aliases/functions that I use with zsh. - - -# Aliases ################################################################### - -# perlbrew ######## +# Aliases 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' +alias pd='perldoc' -# show the latest stable release of Perl -alias latest-perl='curl -s http://www.perl.org/get.html | perl -wlne '\''if (/perl\-([\d\.]+)\.tar\.gz/) { print $1; exit;}'\' - - - -# Functions ################################################################# - -# newpl - creates a basic Perl script file and opens it with $EDITOR -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 -} +# Perl Global Substitution +function pgs() { + if (( $# < 2 )) ; then + echo "Usage: $0 find replace [file ...]" >&2 + return 1 + fi + local find="$1" + local replace="$2" + repeat 2 shift -# 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 -i.orig -pe 's/'"$find"'/'"$replace"'/g' "$@" } +# Perl grep since 'grep -P' is terrible. +function prep() { + if (( $# < 1 )) ; then + echo "Usage: $0 pattern [file ...]" >&2 + return 1 + fi -# 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 -} + local pattern="$1" + shift -# say - append a newline to 'print' -say() { - print "$1\n" + perl -nle 'print if /'"$pattern"'/;' "$@" }