Report abuse

class libwww-perl {
  package { "libwww-perl":
    ensure => latest
  }
}

class apache2 {
  include libwww-perl
}

class tomcat {
  include libwww-perl
}

Vs:

class apache2 { 
  package { "libwww-perl":
    ensure => latest
  }
}

class tomcat {
  package { "libwww-perl":
    ensure => latest
  }
}

And, as a final case, lets say you move to a platform without a libwww-perl package, or you need to use CentOS and Debian at the same time:

class libwww-perl {
  case $operatingsystem: {
    debian: {
      package { "libwww-perl":
        ensure => latest
      }
    }
    freebsd: {
      exec { "libwww-perl":
        command => "/usr/bin/perl -MCPAN -e 'install libwww',
        onlyif => ...
      }
    }
  }
}

Compared to having to refactor everyplace that package exists for the same.