--- /dev/null
+add Prefix and Darwin support
+
+--- perl-cleaner
++++ perl-cleaner
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!@GENTOO_PORTAGE_EPREFIX@/bin/bash
+ # vim: set et sw=4 sts=4 tw=80:
+ # Copyright 2005-2014 Gentoo Foundation
+ # Distributed under the terms of the GNU General Public License v2
+@@ -22,13 +22,13 @@
+ PKGS_EXCEPTIONS="dev-lang/perl sys-devel/libperl app-emulation/emul-linux-x86-baselibs"
+ PKGS_MANUAL=""
+
+-PKG_DBDIR=/var/db/pkg
++PKG_DBDIR="@GENTOO_PORTAGE_EPREFIX@/var/db/pkg"
+
+ # See bug 504116 for details
+-if [ -e /lib/gentoo/functions.sh ]; then
+- . /lib/gentoo/functions.sh
+-elif [ -e /etc/init.d/functions.sh ]; then
+- . /etc/init.d/functions.sh
++if [ -e "@GENTOO_PORTAGE_EPREFIX@/lib/gentoo/functions.sh" ]; then
++ . "@GENTOO_PORTAGE_EPREFIX@/lib/gentoo/functions.sh"
++elif [ -e "@GENTOO_PORTAGE_EPREFIX@/etc/init.d/functions.sh" ]; then
++ . "@GENTOO_PORTAGE_EPREFIX@/etc/init.d/functions.sh"
+ else
+ echo "$0: Unable to find functions.sh"
+ exit 1
+@@ -157,7 +157,7 @@
+
+ veinfo 1 "Locating ph files for removal"
+ eindent ""
+- for i in /usr/lib{,64,x32}/perl5 ; do
++ for i in "@GENTOO_PORTAGE_EPREFIX@"/usr/lib{,64,x32}/perl5 ; do
+ [[ ! -d ${i} ]] && continue
+ veinfo 4 "...in ${i}"
+ while IFS= read -r -d $'\0' file ; do
+@@ -183,13 +183,13 @@
+ veinfo 1 "Pretend. Nothing to do."
+ return
+ fi
+- pushd /usr/include > /dev/null
++ pushd "@GENTOO_PORTAGE_EPREFIX@"/usr/include > /dev/null
+ if [[ ${version} =~ ^5.(8|10) ]] ; then
+ eindent
+- veinfo 2 "...in /usr/include"
++ veinfo 2 "...in @GENTOO_PORTAGE_EPREFIX@/usr/include"
+ h2ph ${option} * 2>/dev/null
+ for dir in sys arpa netinet bits security asm gnu linux ; do
+- veinfo 2 "...in /usr/include/$dir/"
++ veinfo 2 "...in @GENTOO_PORTAGE_EPREFIX@/usr/include/$dir/"
+ h2ph ${option} -r $dir/*
+ done
+ eoutdent
+@@ -220,13 +220,16 @@
+ veinfo 1 "Locating ebuilds linked against libperl"
+ fi
+
++ local scanelf=scanelf
++ [[ -e "@GENTOO_PORTAGE_EPREFIX@"/usr/lib/libperl.dylib ]] \
++ && scanelf=scanmacho
+ if ${LIBPERL} ; then
+- if ! type -P scanelf >/dev/null 2>&1; then
+- ewarn "scanelf not found! Install app-misc/pax-utils."
++ if ! type -P ${scanelf} >/dev/null 2>&1; then
++ ewarn "${scanelf} not found! Install app-misc/pax-utils."
+ ewarn "--libperl is disbled."
+ LIBPERL=false
+ else
+- SONAME="$(scanelf -qBS "$(realpath /usr/lib/libperl.so 2>/dev/null )" | awk '{ print $1 }')"
++ SONAME="$(${scanelf} -qBS "$(realpath "@GENTOO_PORTAGE_EPREFIX@"/usr/lib/libperl.{so,dylib} 2>/dev/null )" | awk '{ print $1 }')"
+ veinfo 4 SONAME="${SONAME}"
+ fi
+ fi
+@@ -268,7 +271,7 @@
+ while read -r type file ; do
+ shopt -s extglob
+ [[ ${type} == obj ]] || [[ ${type} == sym ]] || continue
+- [[ ${file} =~ ^/usr/(share|lib(32|64|x32)?)/perl5 ]] || continue
++ [[ ${file} =~ ^"@GENTOO_PORTAGE_EPREFIX@"/usr/(share|lib(32|64|x32)?)/perl5 ]] || continue
+ file=${file% +(!([[:space:]])) +([[:digit:]])}
+ shopt -u extglob
+ if ${FORCE} || outdated_path "${file}" ; then
+@@ -302,7 +305,7 @@
+
+ if ${LIBPERL} ; then
+ # We assume the broken libs have all bin or lib in their path
+- broken_libs="$(scanelf -qBn < <(awk '/^(obj|sym) [^ ]*\/(s?bin|lib(32|64|x32)?)\// && ! /^obj [^ ]*\/usr\/lib\/debug\//{ print $2 }' ${content} ) | grep -o 'libperl\.so\.[0-9.]*' | sort -u )"
++ broken_libs="$(${scanelf} -qBn < <(awk '/^(obj|sym) [^ ]*\/(s?bin|lib(32|64|x32)?)\// && ! /^obj [^ ]*\/usr\/lib\/debug\//{ print $2 }' ${content} ) | grep -o 'libperl\.\(so\|dylib\)\.[0-9.]*' | sort -u )"
+ if [[ -n "${broken_libs}" ]] ; then
+ if ${FORCE} || [[ ${broken_libs} != ${SONAME} ]] ; then
+ PKGS_TO_REMERGE+=" ${CATPKGVER}"
+@@ -327,7 +330,7 @@
+ exit $?
+ fi
+
+- if [[ ${PMS_COMMAND[${PMS_INDEX}]} == emerge && -x /usr/bin/portageq ]] ; then
++ if [[ ${PMS_COMMAND[${PMS_INDEX}]} == emerge && -x "@GENTOO_PORTAGE_EPREFIX@"/usr/bin/portageq ]] ; then
+ # Filter out --getbinpkg, --getbinpkgonly, --usepkg and --usepkgonly options in EMERGE_DEFAULT_OPTS
+ emerge_default_opts=""
+ for option in $(portageq envvar EMERGE_DEFAULT_OPTS ) ; do
+@@ -383,7 +386,7 @@
+ veinfo 1 "or edited. This script cannot deal with them."
+ vecho 1
+
+- for i in /usr/{share,lib{,32,64,x32}}/perl5 ; do
++ for i in "@GENTOO_PORTAGE_EPREFIX@"/usr/{share,lib{,32,64,x32}}/perl5 ; do
+ [[ -d $i ]] && perlpath[${#perlpath[*]}]="$(realpath $i 2>/dev/null )"
+ done
+ [[ ${#perlpath[*]} == 0 ]] && return