Skip to content

Commit

Permalink
feat(perl): add perlbrew auto activation (ohmyzsh#12814)
Browse files Browse the repository at this point in the history
Co-authored-by: Carlo Sala <carlosalag@protonmail.com>
  • Loading branch information
2 people authored and kingbin committed Feb 11, 2025
1 parent 9cbe358 commit 09fd605
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 17 deletions.
40 changes: 23 additions & 17 deletions plugins/perl/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,30 +8,36 @@ To use it, add `perl` to the plugins array in your zshrc file:
plugins=(... perl)
```

## Perlbrew activation

If the plugin detects that `perlbrew` hasn't been activated, yet there is an installation of it in
`$PERLBREW_ROOT`, it'll initialize by default. To avoid this behaviour, set `ZSH_PERLBREW_ACTIVATE=false`
before `source oh-my-zsh.sh` in your zshrc.

## 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 |
| 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.
- `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>`.
- `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).
- `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
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
9 changes: 9 additions & 0 deletions plugins/perl/perl.plugin.zsh
Original file line number Diff line number Diff line change
Expand Up @@ -54,3 +54,12 @@ pgs() { # [find] [replace] [filename]
prep() { # [pattern] [filename unless STDOUT]
perl -nle 'print if /'"$1"'/;' $2
}

# If the 'perlbrew' function isn't defined, perlbrew isn't setup.
if [[ $ZSH_PERLBREW_ACTIVATE != false ]] && (( ! $+functions[perlbrew] )); then
local _perlbrew="${PERLBREW_ROOT:-${HOME}/perl5/perlbrew}"
if [[ -f "${_perlbrew}/etc/bashrc" ]]; then
source "${_perlbrew}/etc/bashrc"
fi
unset _perlbrew
fi

0 comments on commit 09fd605

Please sign in to comment.