in reply to Re^3: variable interpolation
in thread variable interpolation

Herez the sample code requested :
open FRH "<File1.txt"; open FWH ">File2.txt"; while($line = <FRH>) { chop($line); printf FWH "$line\n"; } close FRH; close FWH; --------------------------------------------- File1.txt ********* ovm_report_info("DBG_INFO", $psprintf("Num of Register Fields to Progr +am is : %d", m_uint_num_of_reg_fields_to_program), OVM_HIGH); ovm_report_info("DBG_INFO", $psprintf("Programming Bank %d Reg %d", (i +/32), l_uint_reg_num), OVM_HIGH); File2.txt ********* ovm_report_info("DBG_INFO", $psprintf("Num of Register Fields to Progr +am is : 0", m_uint_num_of_reg_fields_to_program), OVM_HIGH); ovm_report_info("DBG_INFO", $psprintf("Programming Bank 0 Reg 0", (i/3 +2), l_uint_reg_num), OVM_HIGH);

Code tags added by GrandFather

Replies are listed 'Best First'.
Re^5: variable interpolation
by GrandFather (Saint) on Feb 28, 2009 at 07:22 UTC

    Use print instead of printf. printf takes a format string which is what was causing your grief. Any special characters you interpolate into the format string will be processed by the printf and parameters will be expected to match them. Strictures would have alerted you to the problem.

    You should also always use the three parameter version of open and check the result. And you should use lexical file handles:

    open my $inFile, '<', $filename or die "Couldn't open $filename: $!";

    Oh, and don't use chop, use chomp instead.


    True laziness is hard work