Scoreboard comparision

hi,
I have a doubt at comparision part.
my reference model is in c and I’m taking expected output from c reference model,for this i have used queue for storing expected output data



sha_seq_item1 exp_queue[$];
function void write_mon( input sha_seq_item1 tx);
  // exp_queue.push_back(tx);//here im getting error" Fatal Error: ELAB2_0036 Unresolved hierarchical reference to "exp_queue.push_back./0/" from module "scoreboard" (module not found)"
  endfunction

 virtual  task run_phase(uvm_phase phase);
  int fd1;
    //sha_seq_item1 act_tr,exp_tr;
  
   fd1=$fopen("out.txt","r");//output text file from reference
   $fscanf(fd1,"%x",exp_queue[$]);
    
    if(exp_queue.size()>0)
      
     exp_tr=exp_queue.pop_front();
     if(exp_tr.compare(act_tr)
               begin
             `uvm_info("pass",$sformatf("MATCHED"),UVM_LOW)
               $display("pass");
      end
     else 
      begin
        `uvm_info("fail",$sformatf("MISMATCHED"),UVM_LOW)
      end

i have pasted code and errors what im getting
help me to find solution

In reply to naadiya:

The error message mentions identifiers which you code does not show. So there is likely a problem there.

In reply to naadiya:

I do not see any C ref model. It looks like you have your expected data ina file and reading from it.
Tese reads are not correct.
After opening the file you have to read 1 line and scanning this line with respect to the data. I believ you do not need the queue because the expected data are already stored in the file.
See here a step-by-step guide for reading data from a file using Verilog: