In reply to Rao.Bee:
You can add a unique constraint to your `uvm_do_with macro.
`uvm_do_with(req,{m_hwrite == 1;m_hburst == SINGLE;m_haddr == `PKT_REG;m_hwdata == pkt_length; unique {pkt_length, list}; })
list.push_back(req.pkt_length);
`uvm_info(get_type_name(), $sformatf("PKT LENGTH Reg = %h", req.pkt_length),UVM_LOW)
.
Just remember the pain using the `uvm_do macros causes as you try to add more complexity and avoid it.