in reply to exit the loop corrected

Your while condition is equivalent to: (($theSubBuild ne 'sci.bld') or 'esel.bld'), which is not what you want, I believe...

You could use a regexp, like:

while ($theSubBuild !~ /^(sci|esel)\.bld$/) {

...or split your condition in two subconditions:

while (($theSubBuild ne 'sci.bld') or ($theSubBuild ne 'esel.bld')) {

I can't tell you which one is the best. Is efficiency is not critical, choose the one you can mantain best :-)

Ciao!
--bronto

# Another Perl edition of a song:
# The End, by The Beatles
END {
  $you->take($love) eq $you->made($love) ;
}