From 8398eb72c08aff9f0962078420d3075c4176c035 Mon Sep 17 00:00:00 2001 From: Sorin Ionescu Date: Sun, 28 Aug 2011 15:28:09 -0400 Subject: [PATCH] Cleaned up the Perl plugin. --- plugins/perl/perl.plugin.zsh | 70 ++++++++++++------------------------ 1 file changed, 22 insertions(+), 48 deletions(-) diff --git a/plugins/perl/perl.plugin.zsh b/plugins/perl/perl.plugin.zsh index c5590e5..05f2a22 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 ple='perl -wlne' alias pd='perldoc' -# use perl like awk/sed -alias ple='perl -wlne' +# Perl Global Substitution +function pgs() { + if (( $# < 2 )) ; then + echo "Usage: $0 find replace [file ...]" >&2 + return 1 + fi -# 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;}'\' + local find="$1" + local replace="$2" + repeat 2 shift - - -# 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 -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 -# 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 -} - -# say - append a newline to 'print' -say() { - print "$1\n" + local pattern="$1" + shift + + perl -nle 'print if /'"$pattern"'/;' "$@" }