summaryrefslogtreecommitdiff
path: root/oh-my-zsh/plugins/perl
diff options
context:
space:
mode:
Diffstat (limited to 'oh-my-zsh/plugins/perl')
-rw-r--r--oh-my-zsh/plugins/perl/README.md37
-rw-r--r--oh-my-zsh/plugins/perl/perl.plugin.zsh56
2 files changed, 93 insertions, 0 deletions
diff --git a/oh-my-zsh/plugins/perl/README.md b/oh-my-zsh/plugins/perl/README.md
new file mode 100644
index 0000000..dd9b7dc
--- /dev/null
+++ b/oh-my-zsh/plugins/perl/README.md
@@ -0,0 +1,37 @@
+# Perl
+
+This plugin adds [perl](https://www.perl.org/) useful aliases/functions.
+
+To use it, add `perl` to the plugins array in your zshrc file:
+
+```zsh
+plugins=(... perl)
+```
+
+## Aliases
+
+| Aliases | Command | Description |
+| :------------ | :----------------- | :------------------------------------- |
+| pbi | `perlbrew install` | Install specific perl version |
+| pbl | `perlbrew list` | List all perl version installed |
+| pbo | `perlbrew off` | Go back to the system perl |
+| pbs | `perlbrew switch` | Turn it back on |
+| pbu | `perlbrew use` | Use specific version of perl |
+| pd | `perldoc` | Show the perl documentation |
+| ple | `perl -wlne` | Use perl like awk/sed |
+| latest-perl | `curl ...` | Show the latest stable release of Perl |
+
+## Functions
+
+* `newpl`: creates a basic Perl script file and opens it with $EDITOR.
+
+* `pgs`: Perl Global Substitution: `pgs <find_pattern> <replace_pattern> <filename>`
+ Looks for `<find_pattern>` and replaces it with `<replace_pattern>` in `<filename>`.
+
+* `prep`: Perl grep, because 'grep -P' is terrible: `prep <pattern> [<filename>]`
+ Lets you work with pipes or files (if no `<filename>` provided, use stdin).
+
+## Requirements
+
+In order to make this work, you will need to have perl installed.
+More info on the usage and install: https://www.perl.org/get.html
diff --git a/oh-my-zsh/plugins/perl/perl.plugin.zsh b/oh-my-zsh/plugins/perl/perl.plugin.zsh
new file mode 100644
index 0000000..678e88d
--- /dev/null
+++ b/oh-my-zsh/plugins/perl/perl.plugin.zsh
@@ -0,0 +1,56 @@
+# 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
+alias latest-perl='curl -s https://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
+}
+
+
+# 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
+}