Weird perl errors on OS X 10.10 (Yosemite)

Can't locate Permission denied at ...

You run some command involving Perl and...:

$ ack foo
Can't locate   Permission denied at /usr/local/bin/ack line 14.
BEGIN failed--compilation aborted at /usr/local/bin/ack line 14.

or you try to install something funky with homebrew and you got some weird Permission denied errors on Apparently nobody else on the internet is experiencing the same problem.

Given that I sadly remember almost nothing about Perl I had to look up how to print Perl's include directories:

$ perl -wle'print for @INC'

to find out the directory with the wrong permissions:

$ ls /Library/Perl/Updates/5.18.2
ls: /Library/Perl/Updates/5.18.2: Permission denied
$ sudo ls -ld /Library/Perl/Updates/
drwxr-x---  3 root  wheel  102 19 Ott 12:38 /Library/Perl/Updates/

On a Linux system I would have used strace, but on OS X things are a little different:

# dtruss -f 'su MYUSER -c perldoc perlre' 2>&1 | grep -C 3 Permission
66887/0x34fda:  stat64("/Network/Library/Perl/5.18/Pod/\0", 0x7FFF51E0C960, 0x2000)            = -1 Err#2
66887/0x34fda:  stat64("/Library/Perl/Updates/5.18.2/Pod/Perldoc.pmc\0", 0x7FFF51E0CA10, 0x2000)                 = -1 Err#13
66887/0x34fda:  stat64("/Library/Perl/Updates/5.18.2/Pod/\0", 0x7FFF51E0C960, 0x2000)          = -1 Err#13
66887/0x34fda:  write(0x2, "Can't locate Pod/   Permission denied at /usr/bin/perldoc5.18 line 10.\nBEGIN failed--compilation aborted at /usr/bin/perldoc5.18 line 10.\n\004\b\0", 0x95)                 = 149 0

As you can see from the result of the stat64(2) calls there are two different type of errors (Err#2 and Err#13), one for a non-existent file and one for two files which our user can't access. The first stat64 call checks for a compiled version (.pmc) of the Perldoc library for which a permission denied error is negligible, but the same error on the .pm file is an hard error, the one which I was getting at the beginning.