How to receive expected packet in Scoreboard

In reply to Rsignori92:

hi,
i tried to implement second method,by using output text file in run_phase of scoreboard

  fd1=$fopen("out.txt","r");
       for (int i=0; i<8;i=i++)
        foreach(exp_data[i])
     begin
       $fscanf(fd1,"%x",exp_data[i]);   
       ffread1=$fscanf(fd1,"%p",exp_data[i]);
       $display("data[%0d]=%h",i,exp_data[i]);
      begin
        `uvm_info(get_full_name() ,$sformatf("ffread1=%0d  exp_data=%0d",ffread1,exp_data),UVM_LOW)
   
    `uvm_info("run a scoreboard", "waiting for expexted output",UVM_LOW)
       //exp_fifo.get(exp_tr);
      end
        
   `uvm_info("run a scoreboard", "waiting for actual output",UVM_LOW)
      act_fifo.get(act_tr);
       if (act_tr.compare(exp_data)) 
       // if (act_tr== exp_tr) 
        begin
        
        `uvm_info("scoreboard pass",$sformatf("data=%0d hash=%0d", exp_data,act_tr.hash),UVM_LOW)
      end
                                             
 else
          begin

            `uvm_info("scoreboard fail",$sformatf("data=%0d",act_tr.hash),UVM_LOW)
end
end
      end
endtask

/but im getting an error at scoreboard,please help me to sortout