anchor.diff:            when "Protocol" then disk[:interface] = Regexp.last_match(2)
             end
           elsif array && line =~ /^  PHY\[\d+\] Enclosure#\/Slot#\s+:\s+(\d+:\d+)\s*$/
  -          array[:disks] << $1
  +          array[:disks] << Regexp.last_match(1)
           elsif array && line =~ /^  (\S.*\S)\s+:\s+(.*\S)\s*$/
             case Regexp.last_match(1)
             when "Volume wwid" then array[:device] = find_sas_device(Regexp.last_match(2))
  
positive.code:     controllers = []
  
      IO.popen(%w(sas2ircu list)).each do |line|
        if line =~ /^\s+(\d+)\s+(\S+)\s+\h+h\s+\h+h\s+(\S+)\s+\h+h\s+\h+h\s*$/
          controllers[$1.to_i] = {
            :id => devices[:controllers].count,
            :model => $2,
            :pci_slot => $3.sub(/^(\h{2})h:(\h{2})h:(\h{2})h:0(\h)h$/, "00\\1:\\2:\\3.\\4"),
            :arrays => [],
            :disks => []
          }
  
          devices[:controllers] << controllers[$1.to_i]
        end
      end
  
      controllers.each_with_index do |controller, index|
  
negative.code:     end
    end
  
    collect_data(:default) do
      hardware Mash.new
  
  