Strawberry Perl



  • I was going to download some application, and found out to run it I need Perl. So I tried installing Strawberry Perl, which seems to be the recommended version. The default install directory is c:\strawberry, which I dislike - I like all my applications to be in the same place - so I tried installing it to c:\Program Files\Strawberry Perl.

    The sad part is this was created in March 2013.



  • It's possible that it supports spaces, itself, but being a port of Unix Perl, it's probably expected to run a lot of legacy code that is not capable of handling spaces and non-7-bit-ascii characters.



  • But Unix supports Unicode file names, and spaces, doesn't it?



  • Varies. I have a few files on my Linux system with utf-8 chars in them. Some apps handle them fine, some don't. So, I wind up making symlinks pointing to the utf files with 7-bit-icized names themselves. It can also depend on the file name. And, while Unix/Linux do support spaces in file names, a lot of older software does not, so it's considered a best-practice to keep spaces out of files.



  • @Circuitsoft said:

    It's possible that it supports spaces, itself, but being a port of Unix Perl, it's probably expected to run a lot of legacy code that is not capable of handling spaces and non-7-bit-ascii characters.

    And yet Unix supports both spaces and UTF characters in file paths.

    So what the fuck?



  • @Circuitsoft said:

    it's probably expected to run a lot of legacy code that is not capable of handling spaces and non-7-bit-ascii characters.
     

    Are you talking about Perl or the Perl Installer here?

    The installer not being able to deal with spaces in the installation path IS a WTF.

    Configurator? Try ActivePerl. Installs into C:\Program Files\ActiveState Perl\ quite happily.



  • Happens all the times. Woe is unto you if you try to use RMagick under Windows with the required ImageMagick libraries installed under "C:\Program Files\ImageMagick".



  • @configurator said:

    But Unix supports Unicode file names, and spaces, doesn't it?

    I'm getting the feeling you don't actually want this to work at all.



  • @bridget99 said:

    @configurator said:
    But Unix supports Unicode file names, and spaces, doesn't it?

    I'm getting the feeling you don't actually want this to work at all.

    $ pwd
    /home/ben/ʕ ◔ϖ◔ʔ
    $ hg sync
    pulling from https://code.google.com/p/go
    added 14 changesets with 30 changes to 25 files
    + doc/style.css
    + lib/godoc/package.html
    + lib/godoc/package.txt
    + src/cmd/godoc/doc.go
    + src/cmd/godoc/godoc.go
    + src/cmd/godoc/index.go
    + src/cmd/godoc/utils.go
    + src/cmd/ld/lib.c
    + src/cmd/ld/lib.h
    + src/pkg/go/doc/doc.go
    + src/pkg/go/doc/reader.go
    + src/pkg/go/printer/printer.go
    + src/pkg/net/http/request.go
    + src/pkg/net/http/serve_test.go
    + src/pkg/net/http/server.go
    + src/pkg/net/http/transport_test.go
    + src/pkg/net/multicast_test.go
    + src/pkg/net/unicast_posix_test.go
    + src/pkg/net/url/url.go
    + src/pkg/runtime/mgc0.c
    + src/pkg/runtime/mprof.goc
    + src/pkg/runtime/proc.c
    + src/pkg/runtime/runtime.h
    + src/pkg/runtime/traceback_arm.c
    + src/pkg/runtime/traceback_x86.c
    25 files updated, 0 files merged, 0 files removed, 0 files unresolved
    $ ls
    api      CONTRIBUTORS  include  misc     README      test
    AUTHORS  doc           lib      PATENTS  robots.txt  VERSION.cache
    bin      favicon.ico   LICENSE  pkg      src
    $ 
    


  • Well, Ben... you've certainly shown the rest of us (with our "/etc/bin" and "c:/strawberry") how it's done.



  • @bridget99 said:

    Well, Ben... you've certainly shown the rest of us (with our "/etc/bin" and "c:/strawberry") how it's done.

    $ pwd
    /home/ben/beau29
    $ ls
    "∕etc∕bin" and "C:\Strawberry"
    $ file '"∕etc∕bin" and "C:\Strawberry"'
    "∕etc∕bin" and "C:\Strawberry": ASCII text
    $ cat '"∕etc∕bin" and "C:\Strawberry"'
    Well, Ben... you've certainly shown the rest of us (with our "/etc/bin" and "c:/strawberry") how it's done.
    $ 
    


  • Just make the dir yourself, then install it to C:\Progra~1\Strawb~1.

    Unix Perl actually doesn't need to deal with spaces or unicode in it's installation because it won't ever install to anything other then /usr/bin, /usr/etc, and whatever other global directories with no spaces or unicode it scatters itself across.



  • @MiffTheFox said:

    Unix Perl actually doesn't need to deal with spaces or unicode in it's installation because it won't ever install to anything other then
     

    That's not Perl doing it, it's the installer that's doing it (rpm/dpkg et al).

    Curious to know what would happen if you compiled perl into "/usr/local/bin/prg langs" and try to install some libraries via cpan?



  • @Ben L. said:

    @bridget99 said:
    Well, Ben... you've certainly shown the rest of us (with our "/etc/bin" and "c:/strawberry") how it's done.

    $ pwd
    /home/ben/beau29
    $ ls
    "∕etc∕bin" and "C:\Strawberry"
    $ file '"∕etc∕bin" and "C:\Strawberry"'
    "∕etc∕bin" and "C:\Strawberry": ASCII text
    $ cat '"∕etc∕bin" and "C:\Strawberry"'
    Well, Ben... you've certainly shown the rest of us (with our "/etc/bin" and "c:/strawberry") how it's done.
    $ 
    

    I once had an MP3 file with a slash in it, and Krusader (KDE midnight commander clone) accidentally used the URL encoded version of the filename as input for sprintf. Fun times.



    Edit: I reported the bug and, years later, received an e-mail update that it was fixed. I wasn't using Krusader anymore, or Linux.


  • Discourse touched me in a no-no place

    @blakeyrat said:

    And yet Unix supports both spaces and UTF characters in file paths.

    So what the fuck?

    Unix handles those things just fine. Crappy scripts in crappy scripting languages… not so much.



  • @blakeyrat said:

    And yet Unix supports both spaces and UTF characters in file paths.
     

     

    And newlines! Those are my favorite.

    
    mint@mint /home $ ls -lh --show-control-chars
    total 0
    drwxr-xr-x  2 root root  40 Mar 29 11:33 Is this the real life?
    Is this just fantasy?
    Caught in a landslide
    No escape from reality
    Open your eyes
    Look up to the skies and see
    I'm just a poor boy, I need no sympathy
    Because I'm easy come, easy go
    A little high, little low
    drwxr-xr-x 22 mint mint 620 Mar 29 11:22 mint
    

    I still can't manage to set it as the home dir though.



  • I had to use Strawberry Prolog once upon a time, don't remember where it installed to however. Are there lost of Strawberry Things? Do they all go into the same folder? Do they mess each other up?



  • @georgir said:

    Are there lost of Strawberry Things?
     

    Strawberry Cheesecake.

    @georgir said:

    Do they mess each other up?

    Not half.



  • @spamcourt said:

    And newlines! Those are my favorite.

    Obligatory this article about how *nix file names are as broken as everything else on their broken-ass system.

    @David A. Wheeler said:

    This article will try to convince you that adding some tiny limitations on legal Unix/Linux/POSIX filenames would be an improvement. Many programs already presume these limitations, the POSIX standard already permits such limitations, and many Unix/Linux filesystems already embed such limitations — so it’d be better to make these (reasonable) assumptions true in the first place.


  • Discourse touched me in a no-no place

    @Cassidy said:

    @georgir said:

    Are there lost of Strawberry Things?
     

    Strawberry Cheesecake.

     

     

     Eeew.  But also, <ing mce_src="http://images.cryhavok.org/d/1969-1/Penny+Arcade+Strawberry+Shortcake.jpg" src="http://images.cryhavok.org/d/1969-1/Penny+Arcade+Strawberry+Shortcake.jpg"></ing>

    Strawberry Shortcake


  • @MiffTheFox said:

    /usr/etc

    What



  • @blakeyrat said:

    @spamcourt said:
    And newlines! Those are my favorite.

    Obligatory this article about how *nix file names are as broken as everything else on their broken-ass system.

    @David A. Wheeler said:

    This article will try to convince you that adding some tiny limitations on legal Unix/Linux/POSIX filenames would be an improvement. Many programs already presume these limitations, the POSIX standard already permits such limitations, and many Unix/Linux filesystems already embed such limitations — so it’d be better to make these (reasonable) assumptions true in the first place.

    If you want cute shit like filenames containing spaces, filenames containing Eunuch-code characters, &c., my suggestion is to just use Windows. It's just not the Unix philosophy to support that sort of falderal.



  • @Ben L. said:

    @MiffTheFox said:
    /usr/etc

    What

    Lusers, etc.



    It's like Mailboxes, etc. but for e-mail and shit.



  • @bridget99 said:

    If you want cute shit like filenames containing spaces, filenames containing Eunuch-code characters, &c., my suggestion is to just use Windows. It's just not the Unix philosophy to support that sort of falderal.

    Jesus you're not even trying anymore.



  • @blakeyrat said:

    @bridget99 said:
    If you want cute shit like filenames containing spaces, filenames containing Eunuch-code characters, &c., my suggestion is to just use Windows. It's just not the Unix philosophy to support that sort of falderal.

    Jesus you're not even trying anymore.

    What do you mean? I really do avoid fancy file names because a lot of stuff still doesn't handle them very well. My IT guy asked me to avoid them in one recent situation because they make it harder for him to develop Windows .BAT files. It's sort of a lazy thing to say, but both of us have more important shit to worry about. Fancy file names were just a consumer OS marketing bullet point of the 1990s. They are thoroughly unnecessary.


  • Discourse touched me in a no-no place

    @spamcourt said:

    I still can't manage to set it as the home dir though.
    The /etc/passwd “database” uses newline as a record separator (and colon as a field separator too; that's another character you can't use in a home directory name). A real database would have fewer restrictions, but there's very little benefit to changing it relative to the risk involved in fiddling around with basic stuff, and the passwd system has been in production since long before even Berkeley DB.



  • @Ben L. said:

    @MiffTheFox said:
    /usr/etc

    What

    My understanding of the Unix directory structure boils down to ln -s / /usr.



  • @MiffTheFox said:

    @Ben L. said:
    @MiffTheFox said:
    /usr/etc

    What

    My understanding of the Unix directory structure boils down to ln -s / /usr.

    It's actually ln -s /usr/{bin,sbin,lib} /


  • Discourse touched me in a no-no place

    @Cassidy said:

    @MiffTheFox said:

    Unix Perl actually doesn't need to deal with spaces or unicode in it's installation because it won't ever install to anything other then
     

    That's not Perl doing it, it's the installer that's doing it (rpm/dpkg et al).

    Curious to know what would happen if you compiled perl into "/usr/local/bin/prg langs" and try to install some libraries via cpan?


    Good luck with that...


    [test@thinkpad-pjh perl-5.16.3]$ history
    [...]
       17  wget http://www.cpan.org/src/5.0/perl-5.16.3.tar.gz
    [...]
       21  tar -xzf perl-5.16.3.tar.gz
       22  cd perl-5.16.3/
       23  ls
       24  ./Configure -des -Dprefix=$HOME/prg\ lang
       25  make
       26  make test
       27  make install
    [...]
      /home/test/prg/cpanp.1
      /home/test/prg/cpan2dist.1
      /home/test/prg/shasum.1
      /home/test/prg/splain.1
      /home/test/prg/xsubpp.1
      /home/test/prg/zipdetails.1
      /home/test/prg/find2perl.1
      /home/test/prg/s2p.1
      /home/test/prg/psed.1
    make[1]: Leaving directory `/home/test/perl-5.16.3'
    [...]
    test@thinkpad-pjh perl-5.16.3]$ history
    [...]
       29  ./Configure -des -Dprefix="$HOME/prg lang"
       30  make
       31  make install
    [...]
      /home/test/prg/cpanp.1
      /home/test/prg/cpan2dist.1
      /home/test/prg/shasum.1
      /home/test/prg/splain.1
      /home/test/prg/xsubpp.1
      /home/test/prg/zipdetails.1
      /home/test/prg/find2perl.1
      /home/test/prg/s2p.1
      /home/test/prg/psed.1
    make[1]: Leaving directory `/home/test/perl-5.16.3'
    


  •  @Ben L. said:

    @bridget99 said:
    Well, Ben... you've certainly shown the rest of us (with our "/etc/bin" and "c:/strawberry") how it's done.

    $ pwd
    /home/ben/beau29
    $ ls
    "∕etc∕bin" and "C:\Strawberry"
    $ file '"∕etc∕bin" and "C:\Strawberry"'
    "∕etc∕bin" and "C:\Strawberry": ASCII text
    $ cat '"∕etc∕bin" and "C:\Strawberry"'
    Well, Ben... you've certainly shown the rest of us (with our "/etc/bin" and "c:/strawberry") how it's done.
    $ 
    

    Sorry, what? Forward slashes in filenames now?

    Or are those just pipe symbols in italics?

     



  • @aihtdikh said:

     @Ben L. said:

    @bridget99 said:
    Well, Ben... you've certainly shown the rest of us (with our "/etc/bin" and "c:/strawberry") how it's done.

    $ pwd
    /home/ben/beau29
    $ ls
    "∕etc∕bin" and "C:\Strawberry"
    $ file '"∕etc∕bin" and "C:\Strawberry"'
    "∕etc∕bin" and "C:\Strawberry": ASCII text
    $ cat '"∕etc∕bin" and "C:\Strawberry"'
    Well, Ben... you've certainly shown the rest of us (with our "/etc/bin" and "c:/strawberry") how it's done.
    $ 
    

    Sorry, what? Forward slashes in filenames now?

    Or are those just pipe symbols in italics?

     

    Those are U+2215 DIVISION SLASH.


  • @electronerd said:

    @aihtdikh said:

    Sorry, what? Forward slashes in filenames now?

    Or are those just pipe symbols in italics?

     

    Those are U+2215 DIVISION SLASH.


    Ah, of course. I should have looked before asking.

     



  • Hmm, there's a certain person who's system I wouldn't mind putting a file in / named ⁎ or something.


  • Discourse touched me in a no-no place

    @aihtdikh said:

    @bridget99 said:
    "c:/strawberry")

    Sorry, what? Forward slashes in filenames now?

    Presuming it's that last one you're talking about, that's been permissible for years now.



  •  @PJH said:

    @aihtdikh said:
    @bridget99 said:

    "c:/strawberry")

    Sorry, what? Forward slashes in filenames now?

     

    Presuming it's that last one you're talking about, that's been permissible for years now.

    Nah, not the path separator under Windows. I meant the forward slash inside an individual filename on Unix, not as a path separator. I think it's the one and only character that's just flat-out denied, since it's reserved as path-separator. Even NUL is allowed, isn't it? But not the humble /.

     



  • No, NUL is forbidden, but only because of the prevalent use of C strings back when everything was being designed.


  • Discourse touched me in a no-no place

    @aihtdikh said:

    I meant the forward slash inside an individual filename on Unix, not as a path separator. I think it's the one and only character that's just flat-out denied, since it's reserved as path-separator. Even NUL is allowed, isn't it? But not the humble /.
    NUL certainly isn't allowed, since it's the string delimiter in C, which most of *nix is written in - it would break too many things that mess with file paths. The / is, from a quick google, apparently hard-coded in those same utilities.



    There is one way I can think of that will let you 'create' such files, but it involves root, fopen(), /dev/sda1, some knowledge of where the sectors are that contain the directory entries and renaming an existing file that way...



    Though not being au-fait with the exact format that directories are stored in, I'm not sure you could create one with a NUL in it - it might simply truncate the filename.



  • @Cassidy said:

    Curious to know what would happen if you compiled perl into "/usr/local/bin/prg langs" and try to install some libraries via cpan?
     @PJH said:
    Good luck with that...

    Okay... compiler isn't space-aware in that case, so things would break.

     


  • Discourse touched me in a no-no place

    @PJH said:

    NUL certainly isn't allowed, since it's the string delimiter in C, which most of *nix is written in - it would break too many things that mess with file paths.
    Whereas I'd argue that it is allowed, but the first one is always taken as indicating the end of the string to the kernel so there's little point in using it for anything else. Guess that means I can't use a PNG image for a filename after all…



  • I once saw a poorly-ported utility under Ubuntu create a file named something like "C:\Documents and Settings\Miff\Application Data\Some App\somefile.ext" (That's the file name, not the path. On Ubuntu mind you.)



  •  Similar issue: SABnzb deposited a file called "config\sab.ini" in thecurrent working directory, leaving the "config" subdirectory empty.



  • I remember I once accidently created a file which name consited of just whitespace. I had to use tab completion* to rm it, because I couldn't determine what its exact name was.

    Also, I'm trying to introduce N-slash and Z-slash as alternate names for \ and / because it's a lot more clear and unambiguous that forward- and backward-slash. So spread it, if you please.

     

    *No pun intended



  • @Zecc said:

    Also, I'm trying to introduce N-slash and Z-slash as alternate names for \ and / because it's a lot more clear and unambiguous that forward- and backward-slash. So spread it, if you please.

    Alternatively you can call them the forward N slash and the backwards N slash (И slash).



  • @MiffTheFox said:

    @Zecc said:

    Also, I'm trying to introduce N-slash and Z-slash as alternate names for \ and / because it's a lot more clear and unambiguous that forward- and backward-slash. So spread it, if you please.

    Alternatively you can call them the forward N slash and the backwards N slash (И slash).

    So forward N slash is backslash? This is meant to RESOLVE confusion?

    Just imagine it's a little person and to the right is forward. If the slash leans to the right, it's a forward slash; to the left is a backslash.



  • @Ben L. said:

    So forward N slash is backslash? This is meant to RESOLVE confusion?

    Protip: trolls exist



  • @blakeyrat said:

    @Ben L. said:
    So forward N slash is backslash? This is meant to RESOLVE confusion?

    Protip: trolls exist

    And?


Log in to reply