diff --git a/Library/Homebrew/extend/os/mac/keg_relocate.rb b/Library/Homebrew/extend/os/mac/keg_relocate.rb index ec0ccb2399..3229bec9d6 100644 --- a/Library/Homebrew/extend/os/mac/keg_relocate.rb +++ b/Library/Homebrew/extend/os/mac/keg_relocate.rb @@ -230,13 +230,11 @@ module OS brewed_perl = runtime_dependencies&.any? { |dep| dep["full_name"] == "perl" && dep["declared_directly"] } perl_path = if brewed_perl || name == "perl" "#{HOMEBREW_PREFIX}/opt/perl/bin/perl" - elsif tab.built_on.present? - perl_path = "/usr/bin/perl#{tab.built_on["preferred_perl"]}" - - # For `:all` bottles, we could have built this bottle with a Perl we don't have. - # Such bottles typically don't have strict version requirements. - perl_path = "/usr/bin/perl#{MacOS.preferred_perl_version}" unless File.exist?(perl_path) - + elsif tab.built_on.present? && + (preferred_perl_version = tab.built_on["preferred_perl"].presence) && + preferred_perl_version.match?(/^\d+\.\d+$/) && + (perl_path = "/usr/bin/perl#{preferred_perl_version}") && + File.exist?(perl_path) perl_path else "/usr/bin/perl#{MacOS.preferred_perl_version}"