Hacker News new | past | comments | ask | show | jobs | submit login

I can't seem to convince myself to use Perl anymore for serious applications, but I do still whip it out occasionally for essentially the "shell scripts with sane control flow" use case.

IMO it is still mostly unmatched in that area. Most other languages, while just as capable, require far more line noise to interact with streams and use regexes. I admit though I have studiously avoided learning awk and sed over the years.




I've had a good time using zx (and some Deno takes on it). It's amazing how little is needed to make JS pretty handy for scripting. https://github.com/google/zx

I'd love some day to have the power-shelly dream of an object oriented platform. But I don't want to renounce all the cli tools I know & love & switch to a strange new platform to get it.


If only power-shell was a better shell. How do you start a cli program which is not in PATH? Good luck.


You write the path to it, relative or full, just like in other shells

    c:\temp\program.exe


Now try it with a path which contains whitespace.


For those that are genuinely curious,

  & "C:\Program Files\Vendor\AwesomeVendorProgram.exe"
(yes - PS is definitely chock full of idiosyncrasies)


"c:\program files\my user name\foo bar baz.exe"

???

tab completion generally works on space-filled path/names too, at least in the last 10 years or so, when working in windows worlds.


PS interprets that as a string and echoes it.

  PS C:\Users\me> "C:\Program Files\PuTTY\plink.exe"
  C:\Program Files\PuTTY\plink.exe


I don't know what's different about your PowerShell -- I am running PS 7.2, but I type and tab complete the path to the binary and it auto prepends the ampersand for me. Embarrassingly, I never even paid attention before now, it "just works".

My actual experience is pretty much identical to bash and zsh. There's not really any additional cognitive load. Maybe the commenters in this thread aren't used to normal *NIX shells? I don't have any experience with fish or oh-my-zsh.


Oh yes, tab completion adds an ampersand automatically on mine as well. I was just pointing out that literally quoting a pathname to an executable by itself doesn't achieve the desired outcome.


Tab completion does not add it in mine.

PSVersion 7.3.3


That's really weird and I have no idea why it wouldn't be working for you.

I even went as far as to spawn the ancient version of powershell included with Windows and pwsh 7.3.4 without a profile and tab completion adds the ampersand. I do import the PSReadLine module though in my profiles so maybe that is providing the functionality and I was wrong about loading an empty profile.


This is the way I still (occasionally) use perl. I used it back in the CGI days, but even to this day it's excellent for regex-type operations (even just called as a one-liner in a bash script).

I learned enough awk to get by, but if you actually want to do advanced processing it can be even more inscrutable than perl, which can do everything awk can and a lot more.


I do exactly that but with ruby


Ruby works great for this, but is unfortuantely not installed on many systems -- but this isn't just bad luck, I think it's a consequence of the fact that ruby code written two years ago has a pretty good chance of not running on the recent version; and code written for the recent version without thinking about backwards compat also has a good chance of not running on ruby of two years ago...

Means as a language it's not suitable for "have it installed on every system and then just throw code at it that will work, and keep working" like Perl. Even if you could convince all the distro maintainers to include it, you'd never have the version you want/need. Which would be different for different scripts, and you'd have to be constantly updating all your routine maintenance scripts you just wanted to put there and have them keep working -- which with Perl you could.

I wish ruby were more about backwards and forwards compat, but it isn't.


I don't think I have ruby on any system I administer, but perl is almost always there.


dpkg requires perl, so perl is around .deb systems even if perl itself is not directly used.




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: