simplify code and document

This commit is contained in:
Carlo Sala 2025-01-23 20:23:45 +01:00
commit 7abeb4937c
No known key found for this signature in database
GPG key ID: DA6FB450C1A4FE9A
2 changed files with 28 additions and 39 deletions

View file

@ -8,30 +8,36 @@ To use it, add `perl` to the plugins array in your zshrc file:
plugins=(... perl) 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
| Aliases | Command | Description | | Aliases | Command | Description |
| :------------ | :----------------- | :------------------------------------- | | :---------- | :----------------- | :------------------------------------- |
| pbi | `perlbrew install` | Install specific perl version | | pbi | `perlbrew install` | Install specific perl version |
| pbl | `perlbrew list` | List all perl version installed | | pbl | `perlbrew list` | List all perl version installed |
| pbo | `perlbrew off` | Go back to the system perl | | pbo | `perlbrew off` | Go back to the system perl |
| pbs | `perlbrew switch` | Turn it back on | | pbs | `perlbrew switch` | Turn it back on |
| pbu | `perlbrew use` | Use specific version of perl | | pbu | `perlbrew use` | Use specific version of perl |
| pd | `perldoc` | Show the perl documentation | | pd | `perldoc` | Show the perl documentation |
| ple | `perl -wlne` | Use perl like awk/sed | | ple | `perl -wlne` | Use perl like awk/sed |
| latest-perl | `curl ...` | Show the latest stable release of Perl | | latest-perl | `curl ...` | Show the latest stable release of Perl |
## Functions ## 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>` - `pgs`: Perl Global Substitution: `pgs <find_pattern> <replace_pattern> <filename>` Looks for
Looks for `<find_pattern>` and replaces it with `<replace_pattern>` in `<filename>`. `<find_pattern>` and replaces it with `<replace_pattern>` in `<filename>`.
* `prep`: Perl grep, because 'grep -P' is terrible: `prep <pattern> [<filename>]` - `prep`: Perl grep, because 'grep -P' is terrible: `prep <pattern> [<filename>]` Lets you work with pipes or
Lets you work with pipes or files (if no `<filename>` provided, use stdin). files (if no `<filename>` provided, use stdin).
## Requirements ## Requirements
In order to make this work, you will need to have perl installed. In order to make this work, you will need to have perl installed. More info on the usage and install:
More info on the usage and install: https://www.perl.org/get.html https://www.perl.org/get.html

View file

@ -56,27 +56,10 @@ prep() { # [pattern] [filename unless STDOUT]
} }
# If the 'perlbrew' function isn't defined, perlbrew isn't setup. # If the 'perlbrew' function isn't defined, perlbrew isn't setup.
if ! typeset -f perlbrew > /dev/null; then if [[ $ZSH_PERLBREW_ACTIVATE != false ]] && (( ! $+functions[perlbrew] )); then
# Has PERLBREW_ROOT been set prior, and is it a valid directory? If so, store local _perlbrew="${PERLBREW_ROOT:-${HOME}/perl5/perlbrew}"
# value if [[ -f "${_perlbrew}/etc/bashrc" ]]; then
if [[ -n "${PERLBREW_ROOT}" && -d "{{PERLBREW_ROOT}" ]]; then source "${_perlbrew}/etc/bashrc"
perlbrew_root="${PERLBREW_ROOT}"
fi fi
unset _perlbrew
# 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 fi